You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求Kivy语言实现横向BoxLayout含ScrollView与标签的示例代码

Kivy 横向BoxLayout+ScrollView极简示例

核心注意点

  • ScrollView 滚动失效绝大多数是内部容器配置错误:内部嵌套的布局必须设置size_hint_y: None,关闭高度跟随父控件的默认逻辑
  • 内部滚动容器的高度要绑定minimum_height属性,让高度随子控件总高度自动计算,内容超出ScrollView可视区域时就会自动触发滚动

完整可运行代码

直接复制即可运行,无需额外编写kv文件:

from kivy.app import App
from kivy.lang import Builder

KV = '''
BoxLayout:
    orientation: 'horizontal' # 外层为横向BoxLayout
    # 左侧滚动按钮区
    ScrollView:
        size_hint_x: 0.5 # 占总宽度的50%
        BoxLayout:
            orientation: 'vertical'
            size_hint_y: None # 必写,否则滚动不生效
            height: self.minimum_height # 高度随子控件总高度变化
            padding: 10
            spacing: 5
            #:for i in range(20)
            Button:
                text: f'按钮 {i}'
                size_hint_y: None
                height: 40
                on_press: root.ids.test_label.text = self.text + ' 被点击'
    # 右侧固定Label区
    Label:
        id: test_label
        size_hint_x: 0.5 # 占总宽度的50%
        text: 'test label'
        font_size: 20
'''

class DemoApp(App):
    def build(self):
        return Builder.load_string(KV)

if __name__ == "__main__":
    DemoApp().run()

运行效果

左侧区域为滚动区,按钮数量超过可视区域后可上下滑动浏览;点击任意按钮,右侧的test label会同步显示点击的按钮信息。

内容的提问来源于stack exchange,提问作者Lisus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 05:45:03