Valign没有在kivy工作?

问题描述 投票:1回答:1

我这里有这个kivy文件:

<Help>:
    Label:
        text: "[b]Help Page[/b]\n"
        font_size: 30
        markup: True
        valign: "top"
        color: 0,0,0,1
    Label:
        text: "[b] How To Use:[/b]\n"
        font_size: 30
        markup: True
        valign: 'top'
        color: 0,0,0,1

但是,文本不会出现在页面顶部。这是输出:

这有什么问题?我也可以询问如何格式化这些重叠的文本。谢谢 :)

编辑:这是我想要发生的文字:

期望的输出

因此,为了获得该结果,我尝试使用valign和halign来格式化文本,但它似乎不起作用。希望这澄清了我的问题:)

python python-3.x kivy kivy-language
1个回答
2
投票

Display Text at Top

要使用valign:'top'在顶部显示文本,请将text_size: root.width, None替换为text_size: root.width, root.height

片段

<Help>:
    Label:
        id: help
        text_size: root.width, root.height
        markup: True
        valign: 'top'
        halign: 'center'
        color: 0,0,0,1

Output

Img01 - Text at top

Display Both Strings as One

要显示两个字符串,“如何操作:这里有些文字”和“有些标题更多文字”作为一个,我们将执行以下操作:

方圆角

<Help>:
    Label:
        id: help
        text_size: root.width, None
        markup: True
        halign: 'center'
        color: 0,0,0,1

Python代码

class Help(Screen):

    def on_pre_enter(self, *args):
        self.ids.help.text = "[size=30][b]How to Operate[/b][/size]\nSome text here" + \
                             "\n\n[size=30][b]Some title[/b][/size]\nSome more text"

Output - Combined Text

Img01 - Combined Text

Text Overlapping

Label的文本是重叠的,因为您要在屏幕布局中相互添加两个Label小部件。

添加BoxLayout作为两个Label小部件的父级,以防止文本重叠。

Text Wrapping

将文本包裹在一定宽度,提供宽度。例如,要在宽度= 200且高度不限的框中创建Label。

Label(text='Very big big line', text_size=(200, None))

片段

<Help>:
    BoxLayout:
        orientation: 'vertical'

        Label:
            text_size: dp(230), None
            height: self.texture_size[1]
            text: "[size=30][b]How to Operate[/b][/size]Some text here"
            markup: True
            valign: "top"
            halign: 'center'
            color: 0,0,0,1

        Label:
            text_size: dp(150), None
            text: "[size=30][b]Some title[/b][/size]Some more text"
            markup: True
            valign: 'top'
            halign: 'center'
            color: 0,0,0,1

Output

Img01

Text Alignment

添加text_size: self.size

片段

<Help>:
    Label:
        text_size: self.size
        text: "[b]Help Page[/b]\n"
        font_size: 30
        markup: True
        valign: "top"
        color: 0,0,0,1
    Label:
        text_size: self.size
        text: "[b] How To Use:[/b]\n"
        font_size: 30
        markup: True
        valign: 'top'
        color: 0,0,0,1

Text alignment and wrapping

为了使halignvalign对齐属性生效,请设置text_size,它指定文本对齐的边界框的大小。

Output

Img02

© www.soinside.com 2019 - 2024. All rights reserved.