Valign无法在Kivy中工作?

时间:2018-08-28 00:57:34

标签: python python-3.x kivy kivy-language

我在这里有这个奇异文件:

<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

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

Output

这有什么问题?我还想问一下如何设置重叠文本的格式。谢谢:)

编辑: 这是我想在文本中发生的事情:

所需的输出

因此,要获得该结果,我尝试使用valign和halign设置文本格式,但似乎不起作用。希望这可以澄清我的问题:)

1 个答案:

答案 0 :(得分:2)

在顶部显示文本

要使用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

输出

Img01 - Text at top

将两个字符串都显示为一个

要同时显示两个字符串“ 如何操作:一些文本”和“ 一些标题一些文本”,我们将执行以下操作:

kv文件

<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"

输出-合并文本

Img01 - Combined Text

文本重叠

标签的文本重叠,是因为您要在屏幕布局中彼此叠加添加两个标签小部件。

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

文字包装

以一定的宽度包装文本,提供宽度。例如,要在一个宽度为200且高度不受限制的框中创建的标签。

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

输出

Img01

文本对齐

添加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,它指定了   文本在其中对齐的边框。

输出

Img02