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
廣告
© . All rights reserved.