Python Kivy滑块在触摸上覆盖

Python Kivy滑块在触摸上覆盖,python,slider,kivy,Python,Slider,Kivy,我正在尝试构建我的第一个kivy应用程序,并创建一个简单的音频切割工具。我正在使用slider小部件显示播放歌曲中的位置(到目前为止仍然有效),但我希望用户能够将滑块移动到所需位置,并从所选位置播放歌曲 到目前为止,我掌握的代码是: 文件main.py: 播放歌曲时自动移动(时钟间隔回调): 当用户触摸滑块并将其移动到另一个位置时,应发生以下情况: def slider_move(self): if self.loaded: self.position = (self.t

我正在尝试构建我的第一个kivy应用程序,并创建一个简单的音频切割工具。我正在使用slider小部件显示播放歌曲中的位置(到目前为止仍然有效),但我希望用户能够将滑块移动到所需位置,并从所选位置播放歌曲

到目前为止,我掌握的代码是:

文件main.py:

播放歌曲时自动移动(时钟间隔回调):

当用户触摸滑块并将其移动到另一个位置时,应发生以下情况:

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()
...