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

时间:2015-05-24 19:15:15

标签: python user-interface scrollview kivy

我是Kivy的新手,虽然我喜欢触控界面,但我希望我的代码能够在非触摸屏电脑上运行良好。

现在我有一个滚动视图,其中的gridlayout比可见区域大。我可以通过滑动屏幕或用鼠标在背景上单击并拖动来轻松移动视图。我要添加的是一个传统的点击和拖动功能到我的滚动条(如浏览器窗口右侧的滚动条)。

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

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

1 个答案:

答案 0 :(得分:3)

是的,你可以这样做: 在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)

您可以浏览文档,看看您可以根据自己的需求改变其他内容。