【问题标题】:Moving a MDToolbar in kivymd在 kivymd 中移动 MDToolbar
【发布时间】:2022-08-15 08:06:08
【问题描述】:

我不知道如何将工具栏移动到屏幕顶部,在我创建工具栏之前,它默认放置在屏幕顶部。我该如何解决这个问题? output image

KV = (\'\'\'
Screen: 

    MDToolbar:
        title: \"WeatherApp\"
            
    MDLabel: 
        text: \"Hello World\"
\'\'\')


class WeatherApp(MDApp):

    Window.size = (350, 630)
    
    def build(self):

        self.title = \"WeatherApp\"
        self.theme_cls.theme_style = \'Dark\'
        return Builder.load_string(KV)

WeatherApp().run()

    标签: python kivy kivymd


    【解决方案1】:

    由于您使用Screen 作为root 小部件(也是MDToolbar 的父级),它是FloatLayout 的子类,因此您必须明确设置任何小部件的位置,否则所有小部件将相互堆叠(0, 0),默认位置.

    因此,如果您希望将其放在顶部,请使用 attr。 pos_hint 如,

    Screen: 
    
        MDToolbar:
            title: "WeatherApp"
            pos_hint: {"top" : 1}
    

    【讨论】:

      【解决方案2】:

      要完全控制屏幕上的小部件,您可以使用 RelativeLayout 但计算确切位置可能有点复杂,但当您获得它时很容易

      Screen: 
          RelativeLayout:
              MDToolbar:
                  y: self.parent.height - self.height
                  title: "WeatherApp"
      

      在 RelativeLayout 中,y 默认为 0,x 默认为 0,将小部件放置在屏幕的左下角

      y 属性适用于小部件的底部,因此如果您设置

      y: dp(30)
      

      表示小部件的底部距离屏幕底部 dp(30)

      与 x 属性相同。

      x 适用于小部件的左端。因此,如果您设置x: dp(10),则表示小部件的左端距离屏幕左端为 dp(10)

      【讨论】:

        【解决方案3】:

        作为一个快速修复,直到您添加更多项目,只需在您的 MDToolbarMDLabel 之间或在您的 MDLabel 之后添加一个 Widget,例如:

        KV = ('''
        Screen: 
            MDToolbar:
                title: "WeatherApp"
        
        Widget:
                
            MDLabel: 
                text: "Hello World"
        ''')
        
        
        class WeatherApp(MDApp):
        
        Window.size = (350, 630)
        
        def build(self):
            self.title = "WeatherApp"
            self.theme_cls.theme_style = 'Dark'
            return Builder.load_string(KV)
        
        WeatherApp().run()
        

        【讨论】:

          猜你喜欢
          • 2020-11-22
          • 2020-11-23
          • 1970-01-01
          • 2020-12-01
          • 1970-01-01
          • 2020-10-10
          • 1970-01-01
          • 2020-12-19
          • 2021-04-30
          相关资源
          最近更新 更多