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

标签 python user-interface scrollview kivy

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

layout.bind(minimum_height=layout.setter('height'))

最佳答案

enter image description here 下面是如何扩展 ScrollView 以获取可拖动 slider 的示例。

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

您需要使用custom_addScrollSlider中添加小部件,或者将它们添加到kivy中的GridLayout中。

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

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

关于python - 如何在 Kivy python 中最大化滚动条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45372253/

相关文章:

c++ - QtToolBar 在按钮文本中带有带下划线的快捷键

android - Horizo​​ntalScrollView 不起作用

Android ScrollView 根本不滚动

python - Selenium 远程 WebDriver

Android UI,选择持续时间的选择器

python - 如何安装pyatspi?

c# - C# windows metro App 上 Light 主题中的 FileSavePicker

android - 无法在 ScrollView 中拖动搜索栏

python - 具有多个值的公式

python 3 : Make itemgetter sort by string length