【问题标题】:How do I align text inside a kivy label within a .kv file?如何在 .kv 文件中对齐 kivy 标签内的文本?
【发布时间】:2021-10-20 17:48:53
【问题描述】:

我尝试为基于文本的 RPG 制作 gui,现在我想将一些标签的文本对齐到左上角,但是“halign:”和“valign:”似乎没有做任何事情。

那么如何对齐标签内的文本?是不是我做错了什么?

这就是此时 GUI 的外观,我用绿色箭头标记了文本的位置:

这是我的 .kv 文件的外观:

BoxLayoutExample:


<BackgroundColor@Widget>:
    background_color: 1,1,1,1
    canvas.before:
        Color:
            rgba: root.background_color
        Rectangle:
            size: self.size
            pos: self.pos

<BackgroundLabel@Label+BackgroundColor>:
    background_color: 0, 0, 0, 0 
            
<BoxLayoutExample>:
    orientation: "vertical"
    BoxLayout:
        orientation:"horizontal"

        BackgroundLabel:
            background_color: 1,0,0,1
            text: "Placeholder Text\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST" 
            halign: "left"
            valign: "top"
            font_size: "10sp"
            size_hint: .5, 1

        Label:       
            text: "Placeholder Map/Enemy #TEST TEST TEST TEST TEST \nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST"
            halign: "left"
            valign: "top"
            size_hint: 1, 1.3

        BoxLayout:
            orientation:"vertical"
            size_hint: .5, 1
            
            Label: 
                background_color: 1,1,1,.5      
                text: "Placeholder Stats\nHP\nMP\nDMG\nXP\nLVL"
                halign: "left"
                valign: "top"
                size_hint: 1, .3
                
            ScrollView:
                size_hint: 1, .7
                scroll_distance: 100
                 
                Label:                      
                    text: "Placeholder Inventory\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST"
                    size_hint: None, None     
                    size: self.texture_size
                    halign: "left"
                    valign: "top"


    BoxLayout:
        orientation: "horizontal"
        size: "60dp","60dp"        
        size_hint: None,None

        Label:
            size: "60dp","60dp"        
            size_hint: None,None
        
        Button:
            text: "go\nnorth"
            size: "60dp","60dp"        
            size_hint: None,None

        Label:
            size: "60dp","60dp"        
            size_hint: None,None

    BoxLayout:
        orientation: "horizontal"
        size: "180dp","60dp"
            #pos: "0dp","60dp"
        size_hint: None,None
        Button:
            text: "go\nwest"
            size: "60dp","60dp"
            #pos: "0dp","60dp"
            size_hint: None,None
            pos_hint: {"x":0}
        Button:
            text: "go\nsouth"
            size: "60dp","60dp"
            size_hint: None,None
        Button:
            text: "go\neast"
            size: "60dp","60dp"
            #pos: "0dp","60dp"
            size_hint: None,None
        Label:
            size: "60dp","60dp"        
            size_hint: None,None

        Button:
            text: "use\nitem"
            size: "60dp","60dp"        
            size_hint: None,None

        Button:
            text: "equip\ngear"
            size: "60dp","60dp"        
            size_hint: None,None

        Button:
            text: "unequip\ngear"
            size: "60dp","60dp"        
            size_hint: None,None

感谢您的帮助,我真的很感激。

【问题讨论】:

    标签: python user-interface kivy


    【解决方案1】:

    您需要在标签中添加此参数:

    text_size: self.size
    

    那么halignvalign 参数就会正常工作,例如:

    Label:       
        text: "Placeholder Map/Enemy #TEST TEST TEST TEST TEST \nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST\nTEST"
        text_size: self.size
        halign: "left"
        valign: "top"
        size_hint: 1, 1.3
    

    更多详情请关注official kivy documentation

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 2016-05-08
    • 2015-10-16
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多