Kivy - 應用



使用 Kivy 框架編寫的應用程式由繼承自“kivy.app.App”類的類的物件表示。呼叫此物件的 run() 方法啟動應用程式,並進入無限事件迴圈。

應用程式 GUI 透過重寫 App 類中的 build() 方法或提供相應的“.kv”檔案來設定。

應用程式配置

如果要提供一個或多個引數的自定義配置,則在呼叫 App 類的 build_config() 方法時將建立一個 config.ini 檔案。

這是一個 build_config() 方法的示例。它將兩個引數的值儲存在“ini”檔案的“section1”部分中。“ini”檔案的名稱將與應用程式類名稱相同(如果應用程式類名稱字尾為“App”,則去掉“App”)。因此,如果您的應用程式類是“HelloApp”,則將建立“hello.ini”檔案。“ini”檔案中的引數將在呼叫 build() 方法時載入。

def build_config(self, config):
   config.setdefaults('section1', {
      'Company': 'TutorialsPoint',
      'year': '2023'
   })

新增部分後,將在包含“hello.py”檔案的同一目錄中建立“hello.ini”檔案。

如下所示在 build() 方法中載入和使用配置設定:

def build(self):
   config = self.config
   l1 = Label(text="© {} Year {}".format(
      config.get('section1', 'company'),
      config.getint('section1', 'year')),
      font_size=40)
   return l1

執行應用程式時,將透過讀取“config”檔案填充 Label。

示例

這是完整的程式:

from kivy.app import App
from kivy.uix.label import Label
from kivy.core.window import Window

class HelloApp(App):
   Window.size = (720, 300)

   def build_config(self, config):
      config.setdefaults('section1', {
         'Company': 'TutorialsPoint',
         'year': '2023'
      })

   def build(self):
      config = self.config
      l1 = Label(text="© {} Year {}".format(
         config.get('section1', 'company'),
         config.getint('section1', 'year')),
         font_size=40)
      return l1

app = HelloApp()
app.run()

輸出

執行應用程式時,它將生成以下視窗作為輸出

Kivy Applications

查詢應用程式資料夾中建立的“hello.ini”檔案。使用文字編輯器開啟它時,它顯示以下內容:

[section1]
company = TutorialsPoint
year = 2023

App 類中的例項方法

App 類定義以下例項方法:

  • build() - 此方法初始化應用程式,並且僅呼叫一次。如果此方法返回一個小部件(樹),它將用作根小部件並新增到視窗。

  • build_config() - 此方法在初始化應用程式之前構造 ConfigParser 物件。根據您在此處放置的任何預設節/鍵/值配置,將在本地目錄中建立“ini”檔案。

  • load_config() - 此函式返回包含應用程式配置的 ConfigParser。

  • load_kv() - 如果之前沒有為此應用程式構建小部件樹,則第一次執行應用程式時將呼叫此方法。然後,此方法會在與包含應用程式類的檔案相同的目錄中查詢匹配的“kv”檔案。

  • pause() - 此方法使應用程式暫停。

  • run() - 呼叫此方法時,它將以獨立模式啟動應用程式。

  • stop() - 此方法停止應用程式。

  • on_pause() - 這是一個事件處理程式方法,在請求暫停模式時呼叫。如果它返回 True,則應用程式可以進入暫停模式,否則應用程式將停止。

  • on_resume() - 從暫停模式恢復應用程式的事件處理程式方法。

  • on_start() - 此方法是“on_start”事件的事件處理程式。它在初始化之後(在呼叫 build() 之後)但應用程式開始執行之前觸發。

  • on_stop() - 應用程式執行結束後(即視窗即將關閉)觸發的“on_stop”事件。此方法處理 on_stop 事件。

廣告