Godot - создание надписей по запросу и установка размера шрифта с помощью GDscript

Чтобы не слишком объяснять, мне в основном нужно создать неизвестное количество ярлыков с неизвестным текстом. Все нормально и денди - работает. Я не могу найти, как изменить размер шрифта.

Вот что у меня есть:

for string in string_list:
    var new_label = Label.new()
    new_label.text = string
    new_label.set("custom_fonts/font", load(FONTPATH))
    new_label.set("custom_fonts/settings/size", FONTSIZE)
    hbox.add_child(new_label)

Строку шрифта загрузки я нашел на форумах QA и экстраполировал из нее, как настроить строку установленного размера. Хотя они, похоже, не работают, и Годо тоже не выдает ошибок. Делать это во время выполнения - если это имеет значение.

Искал официальные документы и QA. Довольно новичок в Годо, так что я мог искать не в том месте.


person TopCat    schedule 31.01.2020    source источник


Ответы (1)


Учитывая, что вы добавляете метки к HBoxContainer, похоже, что все, что вам нужно, это создать список строк, что можно сделать с помощью ItemList. Элементы можно добавлять динамически с помощью add_item < / а>. Для горизонтального макета, такого как hbox, просто установите max_columns до 0:

Нулевое значение означает неограниченное количество столбцов, т.е. все элементы будут помещены в одну строку.

Поскольку в вашем примере для всех элементов используется один и тот же шрифт и размер, вам просто нужно создать DynamicFont с желаемым шрифтом и размером и назначьте его полю custom_font в ItemList. Проще всего это сделать через редактор.

Если по какой-то причине вам нужно использовать отдельные Label, просто создайте DynamicFont, сделайте его частью Theme и назначьте эту тему родительской для ярлыков. Тогда все надписи унаследуют этот шрифт.

person rcorre    schedule 01.02.2020
comment
Я использовал подход ItemList, это намного быстрее! Мне тоже нужно читать по темам, так что спасибо, что подняли это. Также спасибо за оперативный ответ! - person TopCat; 01.02.2020