Kivy布局使用问题:如何让两个BoxLayout分别位于顶部右上角和左上角
Kivy布局问题排查与修正
错误根因
你当前的代码对<AnchorLayout>全局设置了anchor_x: 'right'、anchor_y: 'top'属性,该属性会作用于这个AnchorLayout下的所有子组件,导致你写的两个BoxLayout都会被对齐到顶部右上角,自然无法实现左上角、右上角分别放置的需求。
修正方案
推荐给两个BoxLayout分别套独立的AnchorLayout,各自配置锚点属性即可,修正后的kv代码如下:
<FloatLayout>: # 根布局用FloatLayout,允许多个锚点组件自由放置 AnchorLayout: anchor_x: 'right' anchor_y: 'top' size_hint: None, None size: self.minimum_size # 右上角按钮组 BoxLayout: orientation: 'horizontal' size_hint: None, None size: self.minimum_size Button: text: 'Dashboard' size_hint: None, None size: 80, 40 Button: text: 'Task' size_hint: None, None size: 80, 40 Button: text: 'Work' size_hint: None, None size: 80, 40 AnchorLayout: anchor_x: 'left' anchor_y: 'top' size_hint: None, None size: self.minimum_size # 左上角Logo组 BoxLayout: orientation: 'horizontal' size_hint: None, None size: self.minimum_size Label: text: 'Logo' size_hint: None, None size: 80, 40 Label: text: 'MU' size_hint: None, None size: 80, 40
调整说明
额外给所有内层容器加了size_hint: None, None和size: self.minimum_size配置,避免容器默认撑满父布局导致锚点对齐失效。
内容的提问来源于stack exchange,提问作者ANTWI ATTA EMMANUEL
相关产品推荐
相关产品推荐

