如何通过拖动滑块来控制我的 Kivy 滚动视图?

How can I control my Kivy scrollview by dragging the sliders?

我是 Kivy 的新手,虽然我喜欢触摸界面,但我希望我的代码也能在非触摸屏计算机上正常运行。

现在我有一个滚动视图,其中有一个大于可见区域的网格布局。通过滑动屏幕或在背景上用鼠标单击并拖动,我可以非常轻松地移动视图。我想添加的是一个常规的点击和拖动功能到我的滚动条(就像你浏览器右侧的滚动条window)。

我不需要向上和向下的小箭头,但我希望能够拖动滚动条并在我的滚动视图中移动。

我是 SO 和 Kivy/Python 的新手,所以如果这是一个糟糕的问题或措辞不当,我深表歉意。

是的,你可以这样做: 在一个ScrollView中有一个scroll_type 属性,所以通过设置它,你可以实现你想要做的事情。

http://kivy.org/docs/api-kivy.uix.scrollview.html?highlight=scroll_type#kivy.uix.scrollview.ScrollView.scroll_type

如果你设置 scroll_type=['bars'],你可能想更改 bar_width 属性,因为它默认为 2 并且太小而无法抓取用鼠标

这是一个基于文档中示例的示例:

layout = GridLayout(cols=1, spacing=10, size_hint_y=None)
# Make sure the height is such that there is something to scroll.
layout.bind(minimum_height=layout.setter('height'))
for i in range(30):
    btn = Button(text=str(i), size_hint_y=None, height=40)
    layout.add_widget(btn) 
root = ScrollView(size_hint=(None, None), size=(400, 400),
                scroll_type=['bars'], bar_width='10dp') #you can use both ['bars','content']
root.add_widget(layout)

您可以浏览文档,看看您还可以根据自己的需要更改哪些内容。