Kivy - Hello World



讓我們從使用 Kivy 構建一個簡單的“Hello World”應用程式開始。請按照以下步驟操作 -

要開發一個 Kivy 應用程式,您需要從“kivy.app”模組匯入 App 類。

from kivy.app import App

使用 App 作為其基類的類的物件表示應用程式。要設計介面,請覆蓋 build() 方法,該方法返回一個根小部件。現在讓我們在 build() 方法中放置一個 pass 語句。

class HelloApp(App):
   def build(self):
      pass

接下來,例項化上面的“HelloApp”類 -

app = HelloApp()

App 類的 run() 方法啟動一個無限事件迴圈。它顯示一個空白的應用程式視窗,目前沒有任何小部件。

app.run()

現在讓我們向根小部件新增一個帶有“Hello World”標題的不可編輯標籤。為此,我們必須從“kivy.uix.label”模組匯入 Label 類。更改 build() 方法,如以下程式所示。

Python Kivy 中的 Hello World

以下是使用 Kivy 列印“Hello World”的完整程式碼 -

示例

from kivy.app import App
from kivy.uix.label import Label

class HelloApp(App):
   def build(self):
   l1 = Label(text="Hello World", font_size=50)
   return l1

app = HelloApp()
app.run()

Label 物件可以使用許多屬性進行配置。在這裡,我們只設置 text 和 font_size 屬性。

從命令列執行上述程式碼 (hello.py) -

python hello.py

Kivy 在終端中生成一些其他日誌文字

[INFO ] [Factory] 190 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO ] [Text ] Provider: sdl2
[INFO ] [Window ] Provider: sdl2
[INFO ] [GL ] Using the "OpenGL" graphics system
[INFO ] [GL ] GLEW initialization succeeded
[INFO ] [GL ] Backend used <glew>
[INFO ] [GL ] OpenGL version <b'4.6.0 - Build 31.0.101.3959'>
[INFO ] [GL ] OpenGL vendor <b'Intel'>
[INFO ] [GL ] OpenGL renderer <b'Intel(R) Iris(R) Xe Graphics'>
[INFO ] [GL ] OpenGL parsed version: 4, 6
[INFO ] [GL ] Shading version <b'4.60 - Build 31.0.101.3959'>
[INFO ] [GL ] Texture max size <16384>
[INFO ] [GL ] Texture max units <32>
[INFO ] [Window ] auto add sdl2 input provider
[INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
[INFO ] [Base ] Start application main loop
[INFO ] [GL ] NPOT texture support is available

執行此應用程式時,您將獲得預設的 Kivy 應用程式視窗,其中包含一個帶有“Hello World”文字的標籤。

Kivy Hello World

您可以按“X”按鈕關閉視窗並停止正在執行的應用程式。

Kivy 中的佈局

在上面的程式中,我們只在應用程式的根樹中使用了一個小部件,即 Label。如果我們想要放置多個小部件,我們需要將它們新增到佈局中,然後從 build() 方法返回佈局物件。Kivy 支援各種型別的佈局,例如 BoxLayout、FlowLayout、AnchorLayout 等。

讓我們設計介面,以便將兩個標籤新增到垂直 BoxLayout 物件中。標籤一個接一個地新增。HelloApp 類的 build() 方法將相應地更改。

示例

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout

class HelloApp(App):
   def build(self):
      lo = BoxLayout(orientation='vertical')
      l1 = Label(text="Hello World", font_size=50)
      l2 = Label(text = "From TutorialsPoint",
         font_size=30,
         color = (1,0,0,1))
      lo.add_widget(l1)
      lo.add_widget(l2)
      return lo

app = HelloApp()
app.run()

輸出

執行上述程式以獲得以下輸出 -

Kivy Hello World
廣告