【问题标题】:Kivy MDtoolbar messing up other widgets (there positing)Kivy MDtoolbar 弄乱了其他小部件(那里定位)
【发布时间】:2021-10-02 18:34:58
【问题描述】:

我在尝试制作录音应用时遇到了这个错误,我的 kivy 小部件定位不正确,我认为问题出在 kivyd 的 MDToolbar 上,但我不想摆脱它。有人可以帮我吗?

# simplified code
from kivy.lang import Builder
from kivymd.app import MDApp
KV = """
MDBoxLayout:
    orientation: "vertical"

    MDToolbar:
        title: "MDToolbar"
    
    Widget:

    MDIconButton:
        icon: "record-circle"
        md_bg_color: app.theme_cls.primary_color
        user_font_size: "64sp"
        pos_hint: {"center_x": 0.6, "center_y": 1}
        
    MDIconButton:
        icon: "motion-play-outline"
        md_bg_color: app.theme_cls.primary_color
        user_font_size: "32sp"
        pos_hint: {"center_x": 0.6, "center_y": 1}

    MDIconButton:
        icon: "content-save"
        md_bg_color: app.theme_cls.primary_color
        user_font_size: "32sp"
        pos_hint: {"center_x": 0.45, "y": 1}
"""


class Test(MDApp):
    def build(self):
        return Builder.load_string(KV)


Test().run()

这是它的外观 enter image description here x 轴是工作的孩子,但 y 轴不是 救命……

【问题讨论】:

  • 您是否需要小部件垂直并与中心对齐?
  • 嗯,是的,但在大多数水平上,我的意思是我有点上下波动,x轴没问题

标签: python python-3.x kivy kivymd


【解决方案1】:

使用浮动布局:

from kivy.lang import Builder
from kivymd.app import MDApp
KV = """
MDBoxLayout:
    orientation: "vertical"

    MDToolbar:
        title: "MDToolbar"

    FloatLayout:
        MDIconButton:
            icon: "record-circle"
            md_bg_color: app.theme_cls.primary_color
            #user_font_size: "64sp"
            pos_hint: {"center_x": 0.8, "center_y": .5}
            
        MDIconButton:
            icon: "pencil"
            md_bg_color: app.theme_cls.primary_color
            #user_font_size: "32sp"
            pos_hint: {"center_x": 0.8, "center_y": .7}

        MDIconButton:
            icon: "content-save"
            md_bg_color: app.theme_cls.primary_color
            #user_font_size: "32sp"
            pos_hint: {"center_x": 0.8, "y": .8}
            
        MDIconButton:
            icon: "home"
            md_bg_color: app.theme_cls.primary_color
            #user_font_size: "64sp"
            pos_hint: {"center_x": 0.3, "center_y": .5}
            
        MDIconButton:
            icon: "menu"
            md_bg_color: app.theme_cls.primary_color
            #user_font_size: "32sp"
            pos_hint: {"center_x": 0.3, "center_y": .7}

        MDIconButton:
            icon: "dots-vertical"
            md_bg_color: app.theme_cls.primary_color
            #user_font_size: "32sp"
            pos_hint: {"center_x": 0.3, "y": .8}
            
        MDIconButton:
            icon: "home"
            md_bg_color: app.theme_cls.primary_color
            #user_font_size: "64sp"
            pos_hint: {"center_x": 0.5, "center_y": .2}
            
        MDIconButton:
            icon: "menu"
            md_bg_color: app.theme_cls.primary_color
            #user_font_size: "32sp"
            pos_hint: {"center_x": 0.6, "center_y": .2}

        MDIconButton:
            icon: "dots-vertical"
            md_bg_color: app.theme_cls.primary_color
            #user_font_size: "32sp"
            pos_hint: {"center_x": 0.7, "y": .2}
"""


class Test(MDApp):
    def build(self):
        return Builder.load_string(KV)


Test().run()

图片:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-13
    • 2014-03-26
    • 2020-08-18
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    • 1970-01-01
    • 2015-01-02
    相关资源
    最近更新 更多