Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

GUI и примеры, помогите понять


Azuron

Рекомендуемые сообщения

Привет, пытаюсь создать интерфейс настроек для аддона, но не могу никак разобраться с виджетами.

Я создаю mainform, в которой у меня дети: кнопка аддона и mainpanel, а в mainpanel: чекбокс, текст, и текстура backlayer. 

local MainPanel = mainForm:GetChildChecked( "MainPanel", false )
local text = MainPanel:GetChildChecked( "Text", false ):GetWidgetDesc() 
local desc = mainForm:GetChildChecked( "MainPanel", false ):GetWidgetDesc()
local check = MainPanel:GetChildChecked( "CheckBox", false ):GetWidgetDesc() 
local Settings = nil
MainPanel:Show( false )

Вызываю функцию создания окошка из полученных виджетов(подсмотрел как это происходит в currencyinfo):

function CreateSettings()
	if not Settings then
		Settings = mainForm:CreateWidgetByDesc( desc )
		Settings:SetName("Settings")
		Settings:SetPriority(200)
		Settings:Show(false)
		
		local p = Settings:GetPlacementPlain()
		p.alignX = WIDGET_ALIGN_LOW 
		p.alignY = WIDGET_ALIGN_LOW
		p.sizeX = 250
		p.sizeY = 100
		Settings:SetPlacementPlain(p)
		
		--Создаем чекбокс
		local check1 = MainPanel:CreateWidgetByDesc( check )
		check1:SetName("SettingsCheck1")
		local pos = check1:GetPlacementPlain()
		pos.posX = 15
		pos.posY = 15
		check1:SetPlacementPlain(pos)
		check1:Show( true )
		Settings:AddChild(check1)
		
		--Текст1
		local Text1 = MainPanel:CreateWidgetByDesc( text )
		local pos = Text1:GetPlacementPlain()
		pos.sizeX = 150
		pos.sizeY = 18
		pos.posX = 40
		pos.posY = 15
		Text1:SetPlacementPlain(pos)
		Text1:SetFormat( userMods.ToWString('<header alignx="left" fontsize="14" outline="1" shadow="0" color="0xFFFFFFFF"><rs class="class"><r name="value"/></rs></header>') )
		Text1:SetVal("value", userMods.ToWString("Значение 1"))
		Text1:Show( true )
		Settings:AddChild(Text1)
		
		local check2 = MainPanel:CreateWidgetByDesc( check )
		check2:SetName("SettingsCheck2")
		local pos = check2:GetPlacementPlain()
		pos.posX = 15
		pos.posY = 40
		check2:SetPlacementPlain(pos)
		check2:Show( true )
		Settings:AddChild(check2)
		
		--Текст2
		local Text2 = MainPanel:CreateWidgetByDesc( text )
		local pos = Text2:GetPlacementPlain()
		pos.sizeX = 150
		pos.sizeY = 18
		pos.posX = 40
		pos.posY = 40
		Text2:SetPlacementPlain(pos)
		Text2:SetFormat( userMods.ToWString('<header alignx="left" fontsize="14" outline="1" shadow="0" color="0xFFFFFFFF"><rs class="class"><r name="value"/></rs></header>') )
		Text2:SetVal("value", userMods.ToWString("Значение 2"))
		Text2:Show( true )
		Settings:AddChild(Text2)
				
		DnD:Init(186, Settings, Settings, true)
	end
end

И вызываю само окошко кнопкой:

function ShowSettingsWindow()
	if Settings:IsVisible() then	
		Settings:Show(false)
	else
		Settings:Show(true)
		end
end 

Однако появляется mainpanel без виджетов. Может быть есть какие-то аддоны, где можно понять простую реализацию нескольких кнопок на панельке? Или проще создать несколько вариантов одной кнопки и прописать им разные значения?

Ссылка на комментарий
Поделиться на другие сайты

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования