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

zimerfm

Участник
Автор темы
72
7
здравствуйте. мне нужно сделать, чтобы при нажатии 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)
 
Последнее редактирование:

chromiusj

fullstack eblan
Модератор
5,754
4,056
здравствуйте. мне нужно сделать, чтобы при нажатии 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

ниче не понятно
 
  • Нравится
Реакции: whyega52 и zimerfm

chromiusj

fullstack eblan
Модератор
5,754
4,056
у вас есть варианты, как это исправить?
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

Участник
Автор темы
72
7
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,981
2,196
если не ошибаюсь, для каждого чекбокса вот так отдельно отступы не изменишь, но ты можешь поместить нужный чекбокс в бегинчайлд и изменять уже его параметры типа такого. Если у тебя это в куче мест используется, то проще сделать отдельной функцией
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

Похожие темы

  1. Ответы
    7
    Просмотры
    3K
    Помощь
    deleted-user-224036
    D