文档
Confconsole - 插件系统(用于devs)
ConfConsole菜单选项可以通过插件方便地添加.
插件是放置在 ConfConsole 目录中的 python 源文件。 ConfConsole 将载入任何适用文件, 并作为菜单选项提供给用户 。
插件是如何装入的 ?
首先,树由“ plugins.d” 生成。 每个目录都是菜单或子菜单, 每个可执行的.py脚本是父目录菜单的条目。 注 plugins.d 没有说明,因为它不是从菜单中选择的。
对于树上的每个插件,插件的主体(顶级)运行. 因此, 您不应该在此设置任何相关的代码 { 在哪里? } , 您绝对不应该依赖其它已设置的插件 。 注意:此时对插件可进行可验证的附加变量和函数为NOT可验证.
插件.py文件docstring提供了confconsole中菜单条目的描述. 要设置目录的菜单条目描述,将文本"描述"文件放在目录内.
接下来, doOnce 函数( 可选的) 将在每个插件装入后运行。 请注意, 当所有插件装入时, 并非所有插件都在此时准备好 。 不过,如果你愿意,你确实有能力与他们合作。 {什么? 如何?}
最后,我们建议, run 函数将运行,只要您的插件菜单项在 confconsole 内单击。如果 run 函数不存在于插件中,则将不会创建菜单项。
我如何与用户互动?
电话 console 变量是实例 Console 对象在 confconsole.py。它是使用 pythondialog-wrapper 的简单界面,允许基本的控制台gui 功能。 和所有其他全球一样,一旦全球一体化,就有可能实现。 doOnce 函数运行。请注意,在 confconsole 完全启动之前,您应当使用 NEVER 强制进行任何交互。 这可能造成无头建筑方面的问题,例如,期望能够达到的建筑物。 usage (confconsole的第一个屏幕)在任何交互之前.
下述方法可以从 console:
- 信息框(文本)
在屏幕上显示文本, 如果您想要在屏幕上显示 NOT 屏蔽, 则此选项将暂时屏蔽
time.sleep(seconds)之后。 否则通常用于在长期操作中显示信息 。返回 0。
示例:
console.infobox("some text")
- 是否(文本)
在屏幕上显示文本,并显示是/否的提示。如果是,则返回 0,如果是,则返回 1。
示例:
console.yesno("Are you sure?")
- msgbox(标题、文本、按钮_label=“ok”)
默认情况下, 屏幕上显示文本时会显示“ 确定” 提示。 确定可以通过按钮标签更改为任何内容。 返回 0
示例:
console.msgbox("Warning", "You may need to restart for changes to take effect")
- 输入框(标题、文本、init='、ok_label=“OK”、取消_label=“取消”)
在标题框中显示屏幕上的文本,并用输入框显示(从数值开始)
init)和一个 OK/取消的提示,可以通过ok_label财务报告和已审计财务报表cancel_label参数。返回二重击( 如果确定为0, 如果取消为1, 则输入)
示例:
console.inputbox("Email", "Please enter you're email address", "user@example.com")
- 菜单(标题、文本、选择、无_cancel=假)
在屏幕上显示标题框中的文本,同时显示可选择选项列表(选择),并选择取消按钮。
选项应为长度2的列表或图纸,每个图纸的每个项目都是字符串列表。 最早的字符串集合是项目名称,第二是项目描述.
返回二进制 (如果确定为0,如果取消为1,则返回)
- 实例:
- copy.menu("最爱的号码","选择一个号码",),
- [
["1","1的哑语描述"],[2],"2的哑语描述"],[3],"3的哑语描述"].
]
)
- 窗体(标题、文本、字段、 ok_ label=“ Apply” 、 取消_ label=“ 取消” )
在标题框中显示屏幕上的文本,同时显示一系列标签输入框和应用程序/取消提示(按钮标签可以通过标签参数更改)
- 字段必须是 QM 的集合
(label, item, field_length, input_length)
地点
label是一个在输入框之前显示的字符串,并且item是字段输入中写入的默认文字。字段_长度和输入_长度是分别指定用于显示字段的字符数和可以显示的最大字符数的整数。 输入此字段。这些值也决定字段的可写性。
如果字段_长度为 0,则无法修改,并且由内容决定大小。
如果字段_长度为负数,则字段不能更改,而字段_长度的相反则决定其大小。 {huh?}
如果输入长度为 0,则设定为字段_长度
返回值是状态(如果确定为0,如果取消为1)的(状态,字段)的翻转值。而字段是每个字段按顺序输入的值。
控制台基本上只是包装 python dialog。虽然并非所有方法都暴露出来,而且并非所有对所述方法的论据都暴露出来,但用于python 对话框的文档仍然适用。
http://pythondialog.sourceforge.net/doc/ 密码
我如何与其他插件互动?
插件间交流有几种选择,首先有 imp* 函数,它处理导入插件。重要的是,您必须使用此插件而非普通 import 作为 imp*
函数将返回一个版本,同时它会附加全局设置。一个正常的
import 将它装入普通的蟒蛇文件。
附带职能如下:
- 简写Name
- 完全按照它的意思,返回一个匹配指定名称的所有插件列表
- 简讯
- 返回指定目录名称内所有插件的列表( 即插件的子目录. d)
- 简形
- 返回一个匹配插件中准确相对路径的单一插件.d
除了这些 pop 函数之外, 所有插件之间还有一个共享的事件管理器, 也可以用于交叉插件的通信 。 此事件管理器作为变量被曝光 eventManager
事件管理器相当简单。 事件可以是任何可散逸的对象, 尽管通常使用字符串等明显的东西更有意义 。 同样,事件处理器是任何可调用的对象,但通常是一种函数.
事件管理器中曝光的功能有3个
- 添加活动( 名称) (Y)
- 这在事件管理器拥有的事件列表中添加了事件, 并返回一个会点燃事件的便利功能 。 注意,这种便利功能正是如此,而且没有必要。
- 添加_ handler( 名称, 处理器)
- 中添加了缓冲事件的处理器。如果事件不存在,则会静默地创建。此函数返回无
- 火种活动( 名称)
- 此选项按特定事件的注册顺序给每个处理者打电话。
其他资料
以最小有效插件为例, 请检查插件. d/ 例. py, 只需在动作中看到它 chmod +x plugins.d/example.py 运行 confconsole。
欲查看其他功能的例子,请查看其他提供的插件的源代码.