我正在尝试创建一个客户管理软件,所以我需要创建一个GUI
。我选择Kivy
,因为它是开源的,LGPL
。在
这个软件应该有多个面板,所以我需要有ID
来访问每个面板中的小部件。我用kv语言创建了Kivy
规则,但是当我嵌套一个类是另一个类时,我无法访问ID
的规则。下面是一个示例代码:
布局应用程序.py:
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.tabbedpanel import TabbedPanel
from kivy.uix.boxlayout import BoxLayout
class SkipperList(GridLayout):
pass
class TestPanel(BoxLayout):
def __init__(self, **kwargs):
super(TestPanel, self).__init__(**kwargs)
print "TestPanel ids:", self.ids
class MasterPanel(TabbedPanel):
pass
class NjordApp(App):
def __init__(self, **kwargs):
super(NjordApp, self).__init__(**kwargs)
def build(self):
root = MasterPanel()
return root
if __name__ == '__main__':
application = NjordApp()
application.run()
njord.kv
^{pr2}$当我启动软件时,print only返回{}
。
有人能告诉我如何访问按钮{
您看不到id的原因是您正在打印
TestPanel
的构造函数。它还没有完成创建,更不用说添加了什么了。如果在创建GUI后打印ID(即,通过按按钮),则会看到ID:输出:
^{pr2}$相关问题 更多 >
编程相关推荐