1
來看看,我認爲有同等效果如下代碼:kivy事件處理程序模板
main.py
是兩個版本是相同的,這是很無聊的:
from kivy.app import App
from kivy.uix.widget import Widget
class MainWidget(Widget):
def callback(self):
pass
class MainApp(App):
pass
if __name__ == "__main__":
MainApp().run()⏎
工作main.kv
的版本如下:
MainWidget:
Button:
text: "Buttontext"
on_press: root.callback()
Button:
text: "Buttontext"
on_press: root.callback()
我想對許多按鈕重複一遍!這就是爲什麼我想到一個解決方案看起來像這樣:
<[email protected]>:
text: "Buttontext"
on_press: root.callback()
MainWidget:
TB:
TB:
這是行不通的。我調整了這樣的例子:
<[email protected]>:
text: "Buttontext"
on_press: main.callback()
MainWidget:
id: main
TB:
TB:
......但那也行不通。 template
-feature是否與我的應用程序兼容?
有沒有辦法使嵌套'TB'的工作?說,我把所有這些按鈕放在一個佈局:然後'self.parent'將引用佈局。我是否必須引用'self.parent.root'(如果可行)還是有更好的方法來做到這一點? –
我只是嘗試self.parent.root,但沒有奏效。有沒有辦法訪問實際實例的根?另一個想法:我可以在kivy文件中爲'root'命名一個名稱,以便我可以在以下聲明中引用該名稱? –
這對我有效,但我需要使用self.parent.parent.callback()作爲self.parent是GridLayout。 –