не работает imgui.PushStyleVarVec2(imgui.StyleVar.WindowPadding, imgui.ImVec2(40, 40))

zimerfm

Участник
Автор темы
69
6
здравствуйте. мне нужно сделать, чтобы при нажатии checkbox у меня появляются кнопки, которые по идее должны иметь WindowPadding больше, чем у главного чекбокса, но, так не происходит. вот код:
код "какашка":
imgui.Begin('какашка', window, imgui.WindowFlags.NoResize)
        local isActive = imgui.new.bool(imgui_settings.isEnable.value)
        if(imgui.Checkbox(u8'Статус работы', isActive)) then
            imgui_settings.isEnable.value = isActive[0]
            SaveCfg()
        end
        if isActive[0] then
            imgui.PushStyleVarVec2(imgui.StyleVar.WindowPadding, imgui.ImVec2(40, 40))
            
                imgui.Checkbox(u8'Функция 1', isActive)

            imgui.PopStyleVar()
        end
    imgui.End()

WindowPadding изначально равен (20, 20)
 
Последнее редактирование:

хромиус)

:steamhappy:
Друг
4,973
3,240
здравствуйте. мне нужно сделать, чтобы при нажатии checkbox у меня появляются кнопки, которые по идее должны иметь WindowPadding больше, чем у главного чекбокса, но, так не происходит. вот код:
imgui.Begin('тест', window, imgui.WindowFlags.NoResize) local isActive = imgui.new.bool(imgui_settings.isEnable.value) if(imgui.Checkbox(u8'Статус работы', isActive)) then imgui_settings.isEnable.value = isActive[0] SaveCfg() end if isActive[0] then imgui.PushStyleVarVec2(imgui.StyleVar.WindowPadding, imgui.ImVec2(40, 40)) imgui.Checkbox(u8'Функция 1', isActive) imgui.PopStyleVar() end imgui.End()'тест', window, imgui.WindowFlags.NoResize) local isActive = imgui.new.bool(imgui_settings.isEnable.value) if(imgui.Checkbox(u8'Статус работы', isActive)) then imgui_settings.isEnable.value = isActive[0] SaveCfg() end if isActive[0] then imgui.PushStyleVarVec2(imgui.StyleVar.WindowPadding, imgui.ImVec2(40, 40)) imgui.Checkbox(u8'Функция 1', isActive) imgui.PopStyleVar() end imgui.End():

WindowPadding изначально равен (20, 20)
1697992433219.png

ниче не понятно
 
  • Нравится
Реакции: хуега) и zimerfm

хромиус)

:steamhappy:
Друг
4,973
3,240
у вас есть варианты, как это исправить?
Lua:
imgui.Begin('какашка', window, imgui.WindowFlags.NoResize)
local isActive = imgui.new.bool(imgui_settings.isEnable.value)
if (imgui.Checkbox(u8'Статус работы', isActive)) then
    imgui_settings.isEnable.value = isActive[0]
    SaveCfg()
end
if isActive[0] then
    imgui.PushStyleVarVec2(imgui.StyleVar.WindowPadding, imgui.ImVec2(40, 40))

    imgui.Checkbox(u8'Функция 1', isActive)

    imgui.PopStyleVar()
else
    imgui.PushStyleVarVec2(imgui.StyleVar.WindowPadding, imgui.ImVec2(8, 8))
end
imgui.End()
мб так?
 

zimerfm

Участник
Автор темы
69
6
Lua:
imgui.Begin('какашка', window, imgui.WindowFlags.NoResize)
local isActive = imgui.new.bool(imgui_settings.isEnable.value)
if (imgui.Checkbox(u8'Статус работы', isActive)) then
    imgui_settings.isEnable.value = isActive[0]
    SaveCfg()
end
if isActive[0] then
    imgui.PushStyleVarVec2(imgui.StyleVar.WindowPadding, imgui.ImVec2(40, 40))

    imgui.Checkbox(u8'Функция 1', isActive)

    imgui.PopStyleVar()
else
    imgui.PushStyleVarVec2(imgui.StyleVar.WindowPadding, imgui.ImVec2(8, 8))
end
imgui.End()
мб так?
нет. это не оказалось решением
 

MLycoris

Режим чтения
Проверенный
1,831
1,896
если не ошибаюсь, для каждого чекбокса вот так отдельно отступы не изменишь, но ты можешь поместить нужный чекбокс в бегинчайлд и изменять уже его параметры типа такого. Если у тебя это в куче мест используется, то проще сделать отдельной функцией
Lua:
imgui.PushStyleVarVec2(imgui.StyleVar.WindowPadding, imgui.ImVec2(10, 10))
if imgui.BeginChild('Name1', imgui.ImVec2(160, 60), false) then -- с false в 3 арг фон чайлда будет прозрачным
    imgui.Checkbox(u8'Функция 1', new.bool())
    imgui.EndChild()
end
imgui.PopStyleVar(1)
 
  • Нравится
Реакции: zimerfm