Kivy 控制台



Kivy 中的控制台工具类似于检查器工具,但额外提供了一个功能,可以通过其插件架构添加按钮和面板。与检查器一样,“kivy.modules.console”模块具有命令行界面,以及可编程使用的工具 API。

在命令行使用中,使用 Python 可执行文件的“-m”选项加载模块。

python main.py -m console

要激活 Kivy 控制台,请使用 Window 和 App 对象作为参数从控制台模块调用 create_console() 函数。您需要将以下语句放在 App 类的 build() 方法中。

from kivy.modules import console

class Demo(App):
   def build(self):
      button = Button(text="Test")
      console.create_console(Window, self)
      return button

假设您已经开发了一个名为“slider.py”的 Kivy 应用程序,它具有以下界面。

Kivy Console Slider

该应用程序有三个滑块控件,用于更改上方文本的颜色。在 slider.py 文件的 build() 方法中添加对 create_console() 函数的调用(如上所述)并运行它。首先,将显示上述界面。按 ctrl+E 激活控制台工具。

定义了以下快捷键:

  • “Ctrl + e” - 切换控制台

  • “Escape” - 取消小部件查找,然后隐藏检查器视图

  • “Up” - 选择父小部件

  • “Down” - 选择当前所选小部件的第一个子小部件

  • “Left” - 选择前一个同级小部件

  • “Right” - 选择下一个同级小部件

激活控制台工具后,它会在中间显示一个栏,左侧有“选择”、“属性”和“树”按钮,右侧有“FPS”按钮。

Kivy Console Fps Button

单击“树”按钮,您将获得界面的小部件树。从树中选择滑块控件。

Kivy Console Tree Button

现在按下“属性”按钮。将显示滑块小部件所有属性的可滚动列表。

Kivy Console Properties Button

向下滚动到 value 属性,然后双击以获取一个可编辑的框,其中显示当前值,您可以更改此值。

Kivy Console Property Value

按 Escape 关闭控制台。您应该看到滑块的值已根据您在控制台中设置的值进行了更改。

Kivy Console Slider Value

插件

控制台工具的重要功能之一是插件架构,它允许您向其中添加按钮和面板。默认情况下激活的插件包括:

  • ConsoleAddonFps - 在右上角显示 FPS。

  • ConsoleAddonSelect - 激活选择模式。

  • ConsoleAddonBreadcrumb - 在底部显示当前小部件的层次结构。

  • ConsoleAddonWidgetTree - 用于显示应用程序小部件树的面板。

  • ConsoleAddonWidgetPanel - 用于显示所选小部件属性的面板。

要激活插件,必须在调用 create_console 之前将其添加到 Console.addons。

关于插件

让我们向控制台工具添加一个“关于”按钮。它在控制台工具工作区的中间显示对象描述,包括其 ID。

在 slider.py 中的 App 类定义之前添加以下代码:

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)

如果您再次运行 slider.py 脚本,您将看到“关于”按钮添加到“树”按钮旁边。从窗口部件树中找到滑块,然后单击“关于”按钮以显示滑块窗口部件的 ID。

Kivy Console About Button
广告