【发布时间】:2015-08-23 22:19:03
【问题描述】:
我正在学习 Kivy,目前正在尝试了解 Slider 类。我创建了两个滑块。滑块一应该只对 on_touch_move 作出反应,而滑块二应该对 on_touch_up 和 on_touch_down 作出反应。如果我实现这个,就像我在下面的示例中所做的那样,两个滑块都会相互干扰,即它们会对所有三个事件调度程序做出反应。我试图理解为什么会这样以及如何解决这个问题,但我做不到。谢谢你帮助我。
sliders.kv 文件:
#: kivy 1.9.0
SliderScreen:
<SliderScreen>:
Slider:
min: 0
max: 1
value: 0.75
step: 0.01
on_touch_move: root.test_a()
Slider:
min: 0
max: 1
value: 0.25
step: 0.01
on_touch_up: root.test_b()
on_touch_down: root.test_c()
和 main.py:
import kivy
kivy.require('1.9.0')
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.slider import Slider
class SliderScreen(BoxLayout):
def test_a(self):
print("test_a accessed")
def test_b(self):
print("test_b accessed")
def test_c(self):
print("test_c accessed")
class SlidersApp(App):
pass
if __name__ == '__main__':
SlidersApp().run()
【问题讨论】: