【问题标题】:Align title on center of MDToolbar在 MDToolbar 的中心对齐标题
【发布时间】:2020-10-10 22:41:46
【问题描述】:

如何在 MDToolbar 的中心对齐标题?

下面是代码:

from kivy.lang import Builder
from kivy.properties import ObjectProperty
from kivy.uix.boxlayout import BoxLayout
from kivymd.app import MDApp

class MyLayout(BoxLayout):

    scr_mngr = ObjectProperty(None)

    def change_screen(self, screen, *args):
        self.scr_mngr.current = screen


KV = """
MyLayout:
    scr_mngr: scr_mngr
    orientation: 'vertical'
    MDToolbar:
        id: toolbar
        title: 'My App'
        anchor_title: 'center'
        right_action_items: [['settings', lambda x: root.change_screen('profile') ]]
    ScreenManager:
        id: scr_mngr
        Screen:
            name: 'profile'
"""


class MyApp(MDApp):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

    def build(self):
        return Builder.load_string(KV)


MyApp().run()

工具栏现在看起来像这样,但我想成为绿色框中的文本

toolbar image

【问题讨论】:

    标签: python kivy


    【解决方案1】:

    我也有同样的问题。

    感谢 Xyanight 在此链接上的回答,帮助我找到了答案:KivyMD How to change MDToolbar title size and font?

    转到此链接并相应地添加以下内容:

    Clock.schedule_once(self.set_toolbar_title_halign)
            
        def set_toolbar_title_halign(self, *args):
            self.ids.toolbar.ids.label_title.halign = "center"
    

    这是 Xyanight 的示例,对标题对齐做了一些调整:

    from kivy.clock import Clock
    from kivy.lang import Builder
    from kivy.uix.screenmanager import Screen, ScreenManager
    
    from kivymd.app import MDApp
    
    kv = Builder.load_string(
        """
    <SM>
        P1:
    
    
    <P1>
    
        BoxLayout:
            orientation: 'vertical'
    
            MDToolbar:
                id: toolbar
                title: 'TEST'
    """)
    
    
    class P1(Screen):
        def __init__(self, **kw):
            super().__init__(**kw)
            Clock.schedule_once(self.set_toolbar_title_halign)
            Clock.schedule_once(self.set_toolbar_font_size)
    
        def set_toolbar_title_halign(self, *args):
            self.ids.toolbar.ids.label_title.halign = "center"
    
        def set_toolbar_font_size(self, *args):
            self.ids.toolbar.ids.label_title.font_size = '50sp'
    
    
    class SM(ScreenManager):
        pass
    
    
    class MyApp(MDApp):
        def build(self):
            return SM()
    
    
    if __name__ == '__main__':
        MyApp().run()
    

    这是我第一次投稿。

    【讨论】:

      【解决方案2】:

      您可以简单地在您的 kv 字符串中使用 anchor_title: "center"

      你的代码应该是这样的:

      kv = Builder.load_string(
          """
      <SM>
          P1:
      
      
      <P1>
      
          BoxLayout:
              orientation: 'vertical'
      
              MDToolbar:
                  id: toolbar
                  title: 'TEST'
                  anchor_title: "center"
      """)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-29
        • 1970-01-01
        • 2016-09-21
        • 2019-08-14
        • 2016-06-11
        • 1970-01-01
        • 1970-01-01
        • 2016-03-16
        相关资源
        最近更新 更多