Благодаря тегу ремарок # можно создавать собственные теги. Вот пример того, как можно кастомизировать меню выбора в новом GUI.
# стандартные настройки меню define gui.choice_button_width = 1280 define gui.choice_button_height = 72 define gui.choice_button_borders = Borders(150, 16, 150, 16) define gui.choice_button_text_xalign = 0.5 define pad = 150 # отступ для картинки слева init python: # автоматическое объявление изображений images_auto() window_center() # поиск тегов с настройками кнопки import re def get_tags(text, prefix='#'): # выуживаем все теги ремарок return re.findall('{' + prefix + '([^}]+)}', text) # поиск в строке тега (и его значения) по имени def get_tag(text, tag, default=None): val = default tags = get_tags(text) for i in tags: parts = i.split('=') if len(parts) > 0: if parts[0].strip() == tag.strip(): if len(parts) > 1: val = parts[1] return val # найти в ремарках значение тега 'image' def get_image(text): # по-умолчанию картинки нет return get_tag(text, 'image') # найти в ремарках значение тега 'align' def get_align(text): # по-умолчанию выравнивание текста берем стандартное return float(get_tag(text, 'align', str(gui.choice_button_text_xalign))) # переназначаем экран выбора screen choice(items): style_prefix "choice" vbox: for i in items: button: action i.action background None xpadding 0 ypadding 0 xmargin 0 ymargin 0 textbutton i.caption action i.action text_xalign get_align(i.caption) add get_image(i.caption) yalign .5 xpos pad label start: menu: "Текст по центру": pass "{#image=vk} Текст в центре, картинка слева": pass "{image=vk} Текст в центре, картинка рядом с текстом": pass "{#image=vk} {image=pref} Текст с картинкой в центре, картинка слева": pass "{#image=vk} Картинка слева, текст справа{#align=1.0}": pass "{image=pref} Текст с картинкой слева{#align=.0}": pass "{#image=vk}{image=pref} Текст с картинкой слева и картинка слева{#align=.25}": pass return
Комментарии
Отправить комментарий