我正在尝试用kivy和python开发一个图灵机器模拟器,我得到了基本的GUI设置。但是当我点击顶部栏和侧栏的按钮时,on_touch_down()函数有点超载了on_press()函数。我该怎么解决呢? 所以我想要的是,当我点击舞台区域的任何地方时,会调用on_touch_down()函数并打印坐标;当我单击任何按钮时,会调用on_press()函数,而不会打印任何内容。 这是我的代码:
在GUIDisplay.py在
from kivy.uix.floatlayout import FloatLayout
from kivy.app import App
from kivy.clock import Clock
from kivy.properties import *
class RootWidget(FloatLayout):
def add_transition_toggle(self):
print 'something happened'
def change_tape(self):
pass
def backgroundpress(self):
print 'region'
def actionbuttonpress(self):
print 'menu'
def on_touch_down(self, touch):
print touch.x, touch.y
class GUIDisplay(App):
def build(self):
app = RootWidget()
return app
def start_app():
GUIDisplay().run()
if '__main__' == __name__:
start_app()
在圭显示器.kv在
^{pr2}$
我会第一个承认这很难看,所以也许其他人可以找到更好的方法。据我所知,问题是RelativeLayout正在消化touch事件,因此没有将其传递到widget树中。所以你可以试着沿着这些线来检查孩子们是否消化了它(按下了一个按钮),如果没有,打印出x,y坐标。在
希望这能帮助。。。在
相关问题 更多 >
编程相关推荐