#lua #iup
Вопрос:
IUP 3.26 ввел атрибут ТЕМЫ:
Общий атрибут ТЕМЫ и глобальный атрибут DEFAULTTHEME, который работает для всех элементов управления, чтобы применить набор атрибутов одновременно.
Я использую IUP 3.28 и следую (я думаю) документации для стандартизации внешнего вида различных элементов управления; однако он работает не так, как я ожидаю-на самом деле он, похоже, вообще не работает. Атрибуты, указанные в Теме для каждого элемента управления, не применяются, поэтому очевидно, что я что-то неправильно понял. В примере кнопка должна иметь розовый текст, но это не так.
require "iuplua"
iup.SetGlobal("DLGBGCOLOR","255 255 255") --default background colour
iup.SetGlobal("TXTBGCOLOR", "255,255,255") --default text color
myButtonTheme = iup.user{alignment="ALEFT:ACENTER", expand = "HORIZONTAL",
padding = "20x10", fgcolor = "255 0 255"}
myTheme = iup.user{
IUPBUTTON = myButtonTheme
}
iup.SetGlobal("DEFAULTTHEME", "myTheme") --default settings for iup controls
b = iup.button{title = "This should be pink"}
dlg = iup.dialog{iup.hbox{b}}
dlg:show()
iup.MainLoop()
dlg:destroy()
ETA: Если я создам кнопку таким образом: b = iup.button{title = "This should be pink", theme = myButtonTheme}
она работает; но если я полагаюсь на DEFAULTEME, это не так. У меня есть несколько кнопок, созданных библиотеками, которые я хочу последовательно тематизировать
Ответ №1:
Он пропускает вызов:
iup.SetHandle("myTheme", myTheme)
После создания элемента управления мифемой Lua.
Комментарии:
1. Спасибо. Мне придется ломать голову, почему ручка должна быть установлена для мифемы, но не для моей темы, но теперь, по крайней мере, я могу добиться того, чего хочу.