gpt4 book ai didi

python - 不使用 kv 语言创建 Kivy 小部件?

转载 作者:太空宇宙 更新时间:2023-11-04 07:16:46 25 4
gpt4 key购买 nike

如何在不使用 kv 语言和 .kv 文件的情况下创建 Kivy 小部件?我是基维的新手。我通常使用 Tkinter,但我发现 Kivy 非常适合创建 Android 应用程序,所以我正在学习如何使用它。我知道 Kivy 小部件是使用 .kv 文件制作的,但我想像 Tkinter 中的小部件一样创建它们。

# Creating widgets in tkinter:
# We'll assume tkinter is imported as tk

label_1 = tk.Label(text='Hello World', bg='white')
label_1.pack()

# Creating widgets using Kivy in .py file

label_1 = Label(text='Hello World') # eg. Not able to set color!
add_widget(label_1)

# Creating widgets using kv language

Label:
text: "Hello World"
color: 1,0,0,1

那么,有什么办法可以完全用python制作Kivy小部件吗?我如何直接在 python 中设置 Kivy 标签颜色?

谢谢。

最佳答案

下面是一个不使用 kv lang 的 Kivy 应用程序示例:

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


class TestApp(App):
def build(self):
return Label(
text='Hello, world',
color=(1, 0, 0, 1)
)


TestApp().run()

基本上 kivy.app.App 实例的 build 方法返回了一个主要的小部件对象,在本例中是一个 kivy.uix.Label实例。要拥有更复杂的小部件,您应该创建一些布局类的子类,然后使用 add_widget 方法添加小部件。

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


class TestWidget(BoxLayout):
def __init__(self, **args):
super(TestWidget, self).__init__(**args)
label = Label(
text='Hello, world',
color=(1, 0, 0, 1))
self.add_widget(label)


class TestApp(App):
def build(self):
return TestWidget()


TestApp().run()

无论如何我都鼓励你使用 kv lang,因为它使代码更简单。

关于python - 不使用 kv 语言创建 Kivy 小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41512799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com