我正在使用 kivy 作为 python 中的应用程序,我认为我错误地配置了 kivy 的安装。我正在尝试使用 KV 文件并引用根类。由于构建器加载文件,因此没有可供 KV 文件引用的类,并且我收到“'FloatLayout'没有属性'test'”错误。但是如果我在KV文件中创建一个类,然后返回引用类,它将不会显示该按钮。如果我尝试引用 Tracker(app) 类中的方法,则不会执行任何操作。我需要对我的配置或代码进行哪些更改才能解决我的问题?
这个问题在我正在开发的应用程序以及下面的测试代码中仍然存在。
IDE 是 Visual Studios(如果重要的话)
(.py file)
import kivy
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.lang import Builder
class One(FloatLayout):
def test(self):
print("Clicked")
class Main(App):
def build(self):
print("Running")
#return One()
return Builder.load_file("one.kv")
if __name__ == '__main__':
Main().run()
(KV file)
#<One>:
FloatLayout:
Button:
text: "Enter"
size_hint: None, None
size: 100, 50
pos_hint: {'center_x': 0.5, 'center_y': 0.5}
on_press: root.test()
我希望能够单击按钮并打印“已单击”。
只需将
FloatLayout
文件中的 kv
更改为 One
:
One:
Button:
text: "Enter"
size_hint: None, None
size: 100, 50
pos_hint: {'center_x': 0.5, 'center_y': 0.5}
on_press: root.test()