Python Kivy滑块在触摸上覆盖
我正在尝试构建我的第一个kivy应用程序,并创建一个简单的音频切割工具。我正在使用slider小部件显示播放歌曲中的位置(到目前为止仍然有效),但我希望用户能够将滑块移动到所需位置,并从所选位置播放歌曲 到目前为止,我掌握的代码是: 文件main.py: 播放歌曲时自动移动(时钟间隔回调): 当用户触摸滑块并将其移动到另一个位置时,应发生以下情况:Python Kivy滑块在触摸上覆盖,python,slider,kivy,Python,Slider,Kivy,我正在尝试构建我的第一个kivy应用程序,并创建一个简单的音频切割工具。我正在使用slider小部件显示播放歌曲中的位置(到目前为止仍然有效),但我希望用户能够将滑块移动到所需位置,并从所选位置播放歌曲 到目前为止,我掌握的代码是: 文件main.py: 播放歌曲时自动移动(时钟间隔回调): 当用户触摸滑块并将其移动到另一个位置时,应发生以下情况: def slider_move(self): if self.loaded: self.position = (self.t
def slider_move(self):
if self.loaded:
self.position = (self.truePos_slider.value/100) * self.duration
文件布局.kv:
...
BoxLayout:
orientation: 'vertical'
Slider:
id: truePos_slider
on_release: root.slider_move()
...
问题是kivy的滑块没有按钮那样的on_释放事件。我认为我的问题与这里描述的类似:
实际上,我喜欢来自恶劣环境的解决方案,但我不知道应该将MySliderSubclass的代码和override方法放在哪里,以便让layout.kv文件能够识别它。你能帮帮我吗
如果这是一个愚蠢的问题,我很抱歉,实际上我也是Python新手…如果您想在触摸屏上使用
,只需在.kv文件中替换发布时的,所有事件都可以这样调用。实际上,您不需要继承slider类。
on\u touch\u
是一个由所有小部件共享的事件,因为它是在小部件类本身中实现的。欢迎使用堆栈溢出!请出示你的问题。您应该至少包括您遇到问题的代码的大纲(但最好是a),然后我们可以尝试帮助解决特定问题。您还应该阅读。@TobySpeight谢谢您的帮助!我按照你的建议添加了代码的重要部分。谢谢你的建议@KGS,但不幸的是,触摸屏上的没有按照我需要的方式工作。如果我在触摸上写,
在发布时写,整个应用程序中的每次触摸都会调用函数root.slider\u move(),
,甚至从其他按钮和小部件调用,而不仅仅是在触摸特定的滑块时…这是因为在kivy中,事件按顺序传递给所有小部件,除非您通过在适当的函数中返回True
和/或仅在触摸与小部件发生冲突时触发事件来中断事件冒泡。请参阅:
...
BoxLayout:
orientation: 'vertical'
Slider:
id: truePos_slider
on_release: root.slider_move()
...