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: main.callback()
MainWidget:
id: main
TB:
TB:
...하지만 작동하지 않습니다. 내 응용 프로그램과 호환되는 template
이 있습니까?
중첩 된 'TB'로 작업 할 수있는 방법이 있습니까? 말하자면, 모든 버튼을 레이아웃에 넣습니다. 그러면'self.parent'는 레이아웃을 참조 할 것입니다. 'self.parent.root'를 참조해야합니까 (아니면 제대로 작동할까요?) 아니면 더 좋은 방법이 있나요? –
방금 self.parent.root를 시도했지만 작동하지 않았습니다. 실제 인스턴스의 루트에 액세스 할 수있는 방법이 있습니까? 또 다른 아이디어 : kivy 파일에'root'라는 이름을 붙일 수 있나요? 그래서 다음 선언에서 그 이름을 참조 할 수 있습니까? –
이것은 나를 위해 작동하지만 self.parent를 GridLayout으로 사용하려면 self.parent.parent.callback()을 사용해야했습니다. –