求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
相关产品推荐
相关产品推荐

