вопрос по имгуи разделам

cfrfvvghh

Участник
Автор темы
110
13
Версия MoonLoader
.026-beta
сделал на имгуи разделы с помощью : https://www.blast.hk/threads/54277/post-490840
но столкнулся с проблемой! я не могу в любом варианте их сделать в колонке сверху ибо у них какие-то замороки. можете помочь
 

why ega

РП игрок
Модератор
2,539
2,231
сделал на имгуи разделы с помощью : https://www.blast.hk/threads/54277/post-490840
но столкнулся с проблемой! я не могу в любом варианте их сделать в колонке сверху ибо у них какие-то замороки. можете помочь
Скажу сразу, в той теме говнокод, а вообще, в теории тебе нужна функция imgui.SameLine(), которая обозначает, что следующий элемент будет на том-же уровне
 
  • Нравится
Реакции: Lance_Sterling

cfrfvvghh

Участник
Автор темы
110
13
Скажу сразу, в той теме говнокод, а вообще, в теории тебе нужна функция imgui.SameLine(), которая обозначает, что следующий элемент будет на том-же уровне
я и с лайном пробовал
 

cfrfvvghh

Участник
Автор темы
110
13
извиняюсь, не ту ссылку кинул. Внизу код из ссылки которую я юзал

local page = "main"

local button = {
"main",
"other",
"hz"
} — названия кнопок

— в рендере имгуи

for i, name in ipairs(button) do
if imgui.Button(name) then
page = name
end
end

if page == "main" then
imgui.Text("вкладка номер один")
imgui.Button("button from main")
elseif page == "other" then
imgui.Text("вкладка номер два")
imgui.Button("button from other")
else
imgui.Text("вкладка номер три")
imgui.Button("button from hz")
end — тут код говно, подредактируй под свое
 

why ega

РП игрок
Модератор
2,539
2,231
извиняюсь, не ту ссылку кинул. Внизу код из ссылки которую я юзал

local page = "main"

local button = {
"main",
"other",
"hz"
} — названия кнопок

— в рендере имгуи

for i, name in ipairs(button) do
if imgui.Button(name) then
page = name
end
end

if page == "main" then
imgui.Text("вкладка номер один")
imgui.Button("button from main")
elseif page == "other" then
imgui.Text("вкладка номер два")
imgui.Button("button from other")
else
imgui.Text("вкладка номер три")
imgui.Button("button from hz")
end — тут код говно, подредактируй под свое
О, мой код (но это тоже ещё то говно)
Примерно сделал, возможно будут какие-то глупые ошибки, т.к. пишу с телефона
Lua:
local pages = {
    {
        name = "1 вкладка", render = function()
            imgui.Text("вкладка номер один")
        end
    }, 
    {
        name = "2 вкладка", render = function()
            imgui.Button("кнопка во второй вкладке")
        end
    } -- и т.д.
}

local currentPage = 1


-- в рендере имгуи
for i, page in ipairs(pages) do
    if imgui.Button(page.name) then currentPage = i end
    if (i ~= #pages) then imgui.SameLine() end -- для того, чтобы все кнопки со вкладками отображались горизонтально
end

pages[currentPage]:render()
Это далеко не идеальный код, но всё же лучше, можно уйти в ООП, но в этом с телефона помочь не смогу толком
 
Последнее редактирование:

cfrfvvghh

Участник
Автор темы
110
13
О, мой код (но это тоже ещё то говно)
Примерно сделал, возможно будут какие-то глупые ошибки, т.к. пишу с телефона
Lua:
local pages = {
    {
        name = "1 вкладка", render = function()
            imgui.Text("вкладка номер один")
        end
    }, 
    {
        name = "2 вкладка", render = function()
            imgui.Button("кнопка во второй вкладке")
        end
    } -- и т.д.
}

local currentPage = 1


-- в рендере имени
for i, page in ipairs(pages) do
    if imgui.Button(page.name) then currentPage = i end
    if (i ~= #pages) then imgui.SameLine() end -- для того, чтобы все кнопки со вкладками отображались горизонтально
end

pages[currentPage]:render()
Это далеко не идеальный код, но всё же лучше, можно уйти в ООП, но в этом с телефона помочь не смогу толком
слишком сложно и возможно даже не работает , можешь помочь с тем кодом что выше
 
  • Злость
Реакции: qdIbp

why ega

РП игрок
Модератор
2,539
2,231
1-14 строка помещается в глобальное пространство (вне функций), всё, что идёт дальше - там, где у тебя отрисовываются все элементы, а точнее: 18-21 это отрисовка самих вкладок, а 23 это отрисовка их содержимого
 

cfrfvvghh

Участник
Автор темы
110
13
1-14 строка помещается в глобальное пространство (вне функций), всё, что идёт дальше - там, где у тебя отрисовываются все элементы, а точнее: 18-21 это отрисовка самих вкладок, а 23 это отрисовка их содержимого
то есть 1-14 перед ондрайвфрайм, 18-21 перед рисование окна, 23 после рисования окна?