Kivy - Hello World

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

让我们从使用 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 中的布局

在上面的程序中,我们在应用程序的根树中只使用了一个小部件,即标签。如果我们想要放置多个小部件,我们需要将它们添加到布局中,然后从 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

0 人点赞过