目录
控制台¶
在 1.9.1 版本加入.
旧版检查器的重启,旨在实现模块化并保持关注点分离。它还具备插件架构,允许你在控制台本身中添加按钮、面板或更多内容。
警告
该模块可以工作,但在某些情况下可能会失败。欢迎贡献!
用法¶
对于常规模块使用,请参阅 modules 文档::
python main.py -m console
附加信息¶
某些属性可以实时编辑。然而,由于某些属性的延迟使用,如果你不处理必要的情况,可能会导致崩溃。
插件¶
插件必须在应用程序的第一次Clock tick之前,或调用:attr:`create_console`之前添加到`Console.addons`中。目前不支持动态添加插件。在Console激活之前,插件的开销相当小。面板的开销更小,因为直到用户选择它们之前,不会进行任何操作。
我们默认启用了多个附加组件:
ConsoleAddonFps:在右上角显示FPS。
ConsoleAddonSelect:激活选择模式
ConsoleAddonBreadcrumb:在底部显示当前部件的层级结构。
ConsoleAddonWidgetTree:用于显示应用程序控件树的面板。
ConsoleAddonWidgetPanel:用于显示所选控件属性的面板
如果您需要在控制台中添加自定义部件,请使用 ConsoleButton、ConsoleToggleButton 或 ConsoleLabel。
插件必须继承自 ConsoleAddon 类。
例如,这里有一个简单的插件,用于在控制台的右上角显示FPS:
from kivy.modules.console import Console, ConsoleAddon
class ConsoleAddonFps(ConsoleAddon):
def init(self):
self.lbl = ConsoleLabel(text="0 Fps")
self.console.add_toolbar_widget(self.lbl, right=True)
def activate(self):
self.event = Clock.schedule_interval(self.update_fps, 1 / 2.)
def deactivated(self):
self.event.cancel()
def update_fps(self, *args):
fps = Clock.get_fps()
self.lbl.text = "{} Fps".format(int(fps))
Console.register_addon(ConsoleAddonFps)
您可以创建添加面板的插件。面板的激活/停用与插件的激活/停用并不绑定,但在某些情况下,您可以使用同一个回调来停用插件和面板。以下是一个简单的“关于”面板插件示例:
from kivy.modules.console import Console, ConsoleAddon, ConsoleLabel
class ConsoleAddonAbout(ConsoleAddon):
def init(self):
self.console.add_panel("About", self.panel_activate,
self.panel_deactivate)
def panel_activate(self):
self.console.bind(widget=self.update_content)
self.update_content()
def panel_deactivate(self):
self.console.unbind(widget=self.update_content)
def deactivate(self):
self.panel_deactivate()
def update_content(self, *args):
widget = self.console.widget
if not widget:
return
text = "Selected widget is: {!r}".format(widget)
lbl = ConsoleLabel(text=text)
self.console.set_content(lbl)
Console.register_addon(ConsoleAddonAbout)
- class kivy.modules.console.Console(**kwargs)[源代码]¶
-
控制台界面
该控件由 create_console() 在模块加载时创建。在此期间,您可以在控制台上添加插件以扩展功能,或添加自己的应用程序统计/调试模块。
- activated¶
如果控制台已激活(显示),则为 True。
- add_panel(name, cb_activate, cb_deactivate, cb_refresh=None)[源代码]¶
在控制台中添加一个新面板。
cb_activate 是一个可调用对象,当用户激活面板时将被调用。
cb_deactivate 是一个可调用对象,当面板被停用或控制台即将隐藏时,它将被调用。
cb_refresh 是一个可选的可调用对象,当用户再次点击按钮以显示面板时,该对象会被调用。
激活后,由面板负责通过
set_content()在控制台中显示内容。
- addons = [<class 'kivy.modules.console.ConsoleAddonSelect'>, <class 'kivy.modules.console.ConsoleAddonFps'>, <class 'kivy.modules.console.ConsoleAddonWidgetPanel'>, <class 'kivy.modules.console.ConsoleAddonWidgetTree'>, <class 'kivy.modules.console.ConsoleAddonBreadcrumb'>]¶
将在控制台创建时生成的插件数组
- inspect_enabled¶
指示检查器检查是否已启用。如果已启用,下一次触摸按下将选择触摸下方的控件。
- mode¶
控制台的显示模式,可以是停靠在底部,也可以是浮动窗口。
- on_touch_down(touch)[源代码]¶
接收触摸按下事件。
- 参数:
- touch:
MotionEvent类 收到触摸事件。该触摸位于父级坐标系中。关于坐标系统的讨论,请参阅
relativelayout。
- touch:
- 返回:
bool 如果为 True,触摸事件的派发将停止。如果为 False,事件将继续派发给控件树中的其余部分。
- on_touch_move(touch)[源代码]¶
接收触摸移动事件。触摸坐标位于父坐标系中。
更多信息请参阅
on_touch_down()。
- on_touch_up(touch)[源代码]¶
接收触摸抬起事件。触摸坐标位于父级坐标系中。
更多信息请参阅
on_touch_down()。
- widget¶
当前正在被选中的控件
- class kivy.modules.console.ConsoleAddon(console)[源代码]¶
基类:
object实现插件(addons)的基类。
- console = None¶
控制台实例
- class kivy.modules.console.ConsoleToggleButton(**kwargs)[源代码]¶
基类:
ToggleButton专为控制台设计的ToggleButton。
- kivy.modules.console.start(win, ctx)[源代码]¶
创建一个与控制台实例关联的Console实例,并将其绑定到Window的:meth:`~kivy.core.window.WindowBase.on_keyboard`事件上,以捕获键盘快捷键。