Skip to main content
 首页 » 编程设计

python之在 Kivy 中将滚动条添加到 Boxlayout

2025年05月04日15fff_TT

我正在尝试在 Kivy 中使用 ScrollBar 进行 Boxlayout,但我做不到。下面是 .kv 文件的摘录。一旦 Boxlayout 溢出控件被隐藏并且没有滚动条,我就会动态地向 Boxlayout 添加控件。请指教。

<ProcessorUI>: #GridLayout 
    cols: 1 
    rows: 3 
    Label: 
        text: 'Output' 
        size_hint_x: None 
        width: 100 
        size_hint_y: None 
        height: 20 
    ScrollView: 
        size_hint: (None, None) 
        size: (400, 400) 
        BoxLayout: 
            id: output 
            orientation: 'vertical' 
    GridLayout 
        cols: 2 
        TextInput: 
            id: input 
            multiline: True 
            size_hint_y: None 
            height: 40 
        Button: 
            id: btn_process 
            text: 'Process' 
            size_hint_x: None 
            width: 100 
            size_hint_y: None 
            height: 40 
            on_press: root.on_event() 

请您参考如下方法:

ScrollView: 
        size_hint: (None, None) 
        size: (400, 400) 
        BoxLayout: 
            id: output 
            orientation: 'vertical' 

BoxLayout 没有手动设置高度,因此它总是精确地填充 Scrollview,并且永远不需要滚动条。

你可能真的想要像下面这样的东西

ScrollView: 
        size_hint: (None, None) 
        size: (400, 400) 
        GridLayout: 
            id: output 
            cols: 1 
            size_hint_y: None 
            height: self.minimum_height 

最后两行设置网格布局高度以跟踪其子项的高度总和。您也可以将高度设置为任何其他值。