Графические виджеты
Уроки Открыть IDE
На главную
Виджеты • Урок 2

Виджет Label

Текстовая метка: координаты, размер шрифта, цвет и динамическое изменение

Координаты лейблов

Как и любой другой виджет, gui.Label имеет координаты x и y, которые определяют его положение внутри окна:

Я слева
Я справа
📍 Лейблы на разной высоте? Нет — y=30 у обоих. Разное расстояние от левого края — x=20 и x=200.

Размер шрифта

Свойство font_size позволяет задать размер текста в пикселях:

Маленький текст
Большой текст
🔤 Размер шрифта влияет только на отображение, но не на координаты виджета.

Динамическое изменение текста

Свойство text можно менять прямо во время работы программы — например, по нажатию кнопки:

Нажми на кнопку
🖱️ Нажмите на кнопку — текст лейбла изменится прямо на ваших глазах.

А если попробовать число?

Свойство text ожидает строку (string). Попытка присвоить число приведёт к ошибке компиляции:

main.idyl:7: cannot assign 'int' to 'string'

Чтобы вывести число на лейбл, его нужно преобразовать в строку с помощью to_string():

Нажми на кнопку
🎲 to_string(r) превращает число в строку, и лейбл счастлив.

Цвет текста

Свойство color позволяет задать цвет текста в формате шестнадцатеричного кода (HEX). Например, "#FF0000" — красный, "#00FF00" — зелёный, "#0000FF" — синий.

Красный текст
Зелёный текст
Синий текст
🎨 Цвет задаётся в формате "#RRGGBB", где RR — красный, GG — зелёный, BB — синий (00–FF).

Взаимное перекрытие виджетов

Виджеты не умеют автоматически двигаться, когда другим виджетам не хватает места. Если координаты пересекаются — они будут накладываться друг на друга:

Широкая электрификация южных губерний

В этом примере кнопка оказалась поверх лейбла, потому что была добавлена позже. Порядок добавления потомков (add_child) определяет, кто будет выше:

  • Первый добавленный — отрисовывается первым (оказывается снизу).
  • Последний добавленный — отрисовывается последним (оказывается сверху).
💡 Вывод: Всегда планируйте размещение виджетов так, чтобы они не залезали друг на друга. Проверяйте координаты и размеры. Если виджеты должны перекрываться — управляйте порядком с помощью add_child.