1
我无法理解kivy。我正在创建一个带有2个按钮和一个自定义小部件的图形用户界面,它应该打印它接收的触摸坐标,问题在于自定义小部件显然没有接收源自btn2的触摸事件。我相信它应该接收该事件,因为根窗口小部件(窗口)必须将事件分派给其所有子项(包括自定义窗口小部件)。自定义小部件未在kivy中接收触摸事件
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ListProperty
class RootWidget(BoxLayout):
def __init__(self, **kwargs):
super(RootWidget, self).__init__(**kwargs)
self.add_widget(Button(text="btn1"))
self.add_widget(CustomBtn())
self.add_widget(Button(text="btn2"))
class CustomBtn(Widget):
pressed = ListProperty([0,0])
def on_touch_down(self, touch):
self.pressed = touch.pos
return False
def on_pressed(self, instance, value):
print "[CustomBtn] touch down at ", value
class Demo(App):
def build(self):
return RootWidget()
if __name__ == '__main__':
Demo().run()