【问题标题】:How can I control my Kivy scrollview by dragging the sliders?如何通过拖动滑块来控制我的 Kivy 滚动视图?
【发布时间】:2015-08-06 06:50:21
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: python user-interface scrollview kivy


    【解决方案1】:

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

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

    【讨论】:

    • 感谢@Flns 的帮助。这正是我所需要的。
    • 滚动条的行为对于鼠标来说似乎很奇怪。我必须单击并向下拖动滚动条才能将其向上移动,反之亦然。有没有办法改变这种默认行为?编辑:更改为 scroll_type = ['bars','content'] 就可以了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多