Valign не работает в киве? - PullRequest
0 голосов
/ 28 августа 2018

У меня есть этот файл 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

Однако текст не попадает в начало страницы. Это вывод:

Output

Что с этим не так? и могу ли я также спросить о том, как форматировать этот перекрывающийся текст. Спасибо:)

редактирование: Вот что я хочу, чтобы произошло с текстом:

желаемый вывод

Поэтому, чтобы получить такой результат, я попытался использовать valign и halign для форматирования текста, но, похоже, это не сработало. Надеюсь, это прояснило мой вопрос:)

1 Ответ

0 голосов
/ 28 августа 2018

Отображение текста сверху

Чтобы отобразить текст сверху, используя 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

Показать обе строки как одну

Чтобы отобразить обе строки, " Как работать: некоторый текст здесь " и " Некоторый заголовок Некоторый текст " как один, мы сделаем следующее:

файл кв

<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

Выравнивание и перенос текста

Для свойств выравнивания halign и valign для вступить в силу, установите text_size , который определяет размер ограничивающий прямоугольник, внутри которого выравнивается текст.

выход

Img02

...