Kivy - 控制台

创建于 2024-12-03 / 25
字体: [默认] [大] [更大]

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" −取消小部件查找,然后隐藏检查器视图

  • "向上" − 选择父小部件

  • "向下" − 选择当前选定小部件的第一个子部件

  • "向左" − 选择上一个同级部件

  • "向右" − 选择下一个同级部件

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

Kivy Console Fps Button

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

Kivy 控制台树按钮

现在按属性按钮。滑块小部件的所有属性的可滚动列表将可用。

Kivy 控制台属性按钮

向下滚动到值属性,双击以获取可编辑框,其中显示当前值,您可以更改该值。

Kivy 控制台属性值

按 Esc 键删除控制台。您应该会看到滑块的值与您在控制台中设置的值相同。

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 脚本,则会在 Tree 按钮旁边添加 About 按钮。从小部件树中找到滑块,然后单击 About 按钮以显示滑块小部件的对象 ID。

Kivy 控制台关于按钮

0 人点赞过