我在Kivy标签上有一个数字和2个按钮,一个按钮增加该数字,一个按钮减少该数字。我很惊讶地发现使用on_touch_down时+按钮不起作用。我注释掉-按钮,然后+按钮开始起作用。
我将on_touch_down更改为on_press,并且两个按钮均和谐存在/起作用。
有人可以告诉我为什么吗?
这是一个.py文件示例:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
class Counter(BoxLayout):
def count_up(self):
value = self.ids.the_number.text
self.ids.the_number.text = str(int(value) + 1)
def count_down(self):
value = self.ids.the_number.text
self.ids.the_number.text = str(int(value) - 1)
class ProofApp(App):
def build(self):
return Counter()
if __name__ == '__main__':
ProofApp().run()
和.kv文件:
<Counter>:
AnchorLayout:
anchor_x: 'center'
anchor_y: 'top'
BoxLayout:
orientation: 'horizontal'
BoxLayout:
Label:
id: the_number
text: "1"
BoxLayout:
orientation: 'vertical'
padding: 2
Button:
id: count_up
text: "+"
on_press: root.count_up()
Button:
id: count_down
text: "-"
on_press: root.count_down()
答案 0 :(得分:1)
on_touch_down会触发小部件树中的所有内容。您的按钮互相抵消了。
如果您的按钮正在执行其他操作,而这些操作并未彼此抵消,那么您将看到两个动作均触发。例如,如果一个按钮打印“ hello”,而一个按钮打印“ world”,然后按一下似乎无效的按钮,则会打印“ hello world”。