如何在Kivy python中最大化滚动条?

如何在Kivy python中最大化滚动条?,python,user-interface,scrollview,kivy,Python,User Interface,Scrollview,Kivy,我在kivy中使用multiTab。如何放大滚动条,以便用鼠标移动滚动条(上下)。我正在使用BoxLayout和RecycleView。下面的代码用于gridLayout,但不用于BoxLayout: layout.bind(minimum_height=layout.setter('height')) 下面是一个如何扩展ScrollView以获得可拖动滑块的示例 from kivy.app import App from kivy.uix.boxlayout import BoxLayou

我在kivy中使用multiTab。如何放大滚动条,以便用鼠标移动滚动条(上下)。我正在使用BoxLayout和RecycleView。下面的代码用于gridLayout,但不用于BoxLayout:

layout.bind(minimum_height=layout.setter('height'))
下面是一个如何扩展ScrollView以获得可拖动滑块的示例

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
from kivy.uix.label import Label

Builder.load_string("""
<ScrollSlider>:
    ScrollView:
        id: scrlvw
        bar_width: 0
        GridLayout:
            id: grid
            size_hint_y:None
            cols:1
            height: self.minimum_height
            scroll_y: slider.value
            on_touch_move: slider.value = self.scroll_y
    Slider:
        size_hint_x: None
        width: root.width*0.2
        id: slider
        min: 0
        max: 1
        orientation: 'vertical'
        value: scrlvw.scroll_y
        on_value: scrlvw.scroll_y = self.value

""")


class ScrollSlider(BoxLayout):

    def custom_add(self, widget):
        self.ids.grid.add_widget(widget)

class MyApp(App):


    def build(self):
        scrollslider = ScrollSlider()
        for i in range(1, 100):
            scrollslider.custom_add(Label(text=str(i), height=100, size_hint_y=None))
        return scrollslider

if __name__ == '__main__':
    MyApp().run()
从kivy.app导入应用
从kivy.uix.boxlayout导入boxlayout
从kivy.lang导入生成器
从kivy.uix.label导入标签
生成器。加载\u字符串(“”)
:
滚动视图:
id:scrlvw
条形图宽度:0
网格布局:
id:网格
尺寸提示:无
科尔斯:1
高度:自身最小高度
滚动y:slider.value
点击移动:slider.value=self.scroll\u y
滑块:
大小提示:无
宽度:根。宽度*0.2
id:滑块
最低:0
最高:1
方向:“垂直”
值:scrlvw.scroll\u y
打开值:scrlvw.scroll\u y=self.value
""")
类滚动滑块(BoxLayout):
def自定义_添加(自我,小部件):
self.ids.grid.add_小部件(小部件)
类别MyApp(应用程序):
def生成(自):
scrollslider=scrollslider()
对于范围(1100)内的i:
scrollslider.custom_add(标签(text=str(i),height=100,size\u hint\u y=None))
返回滚动滑块
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
MyApp().run()
您需要使用
custom_add
ScrollSlider
中添加小部件,或者将它们添加到kivy中的
GridLayout

我从@Edvardas Dlugauskas提供的链接中获得了一些灵感


您提供的代码不适用于
BoxLayout
,因为
BoxLayout
仅采用其父级的大小。要能够滚动,你需要在
ScrollView
中添加比
ScrollView
本身大的内容。

你不能拖动滚动条滚动,你需要一个单独的滑块来完成。那么,当我使用RecycleView和BoxLayout时,该怎么做呢?你能举个例子吗?谢谢。我想我在制作自己的产品时用过这个例子,试试看。