Вкладки в imgui окне

sdfy

Известный
Автор темы
349
230
Версия MoonLoader
.027.0-preview
Как можно сделать окно как ниже ? Чтобы при нажатии на кнопку слева менялась надпись справа, при нажатии на другую аналогично.

Пример: кнопка "1" при нажатии на которою справа будет надпись "Вы в кнопе '1'", при нажатии кнопки "2" - "Вы в кнопке '2'"


Screenshot_1123.png
 
Решение
Я делал вот так
code:
  imgui.BeginChild("##MenuButtons", imgui.ImVec2(102, 295), true, imgui.WindowFlags.NoScrollbar)
  if imgui.Button(u8"Основное", imgui.ImVec2(94, 35)) then
      windows = 1
  end
  if imgui.Button(u8"Телепорт", imgui.ImVec2(94, 35)) then
      windows = 2
  end
  if imgui.Button(u8"Замка в орг", imgui.ImVec2(94, 35)) then
      windows = 3
  end
  if imgui.Button(u8"Выбор стиля", imgui.ImVec2(94, 35)) then
      windows = 4
  end
  if imgui.Button(u8"Информация", imgui.ImVec2(94, 35)) then
      windows = 5
  end
  imgui.EndChild()
  imgui.SameLine()
  imgui.BeginChild("##Windows", imgui.ImVec2(550, 295), true, imgui.WindowFlags.NoScrollbar)

accord-

Потрачен
437
79
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я делал вот так
code:
  imgui.BeginChild("##MenuButtons", imgui.ImVec2(102, 295), true, imgui.WindowFlags.NoScrollbar)
  if imgui.Button(u8"Основное", imgui.ImVec2(94, 35)) then
      windows = 1
  end
  if imgui.Button(u8"Телепорт", imgui.ImVec2(94, 35)) then
      windows = 2
  end
  if imgui.Button(u8"Замка в орг", imgui.ImVec2(94, 35)) then
      windows = 3
  end
  if imgui.Button(u8"Выбор стиля", imgui.ImVec2(94, 35)) then
      windows = 4
  end
  if imgui.Button(u8"Информация", imgui.ImVec2(94, 35)) then
      windows = 5
  end
  imgui.EndChild()
  imgui.SameLine()
  imgui.BeginChild("##Windows", imgui.ImVec2(550, 295), true, imgui.WindowFlags.NoScrollbar)
 

SomaGnoma

Известный
442
152
Я делал вот так
code:
  imgui.BeginChild("##MenuButtons", imgui.ImVec2(102, 295), true, imgui.WindowFlags.NoScrollbar)
  if imgui.Button(u8"Основное", imgui.ImVec2(94, 35)) then
      windows = 1
  end
  if imgui.Button(u8"Телепорт", imgui.ImVec2(94, 35)) then
      windows = 2
  end
  if imgui.Button(u8"Замка в орг", imgui.ImVec2(94, 35)) then
      windows = 3
  end
  if imgui.Button(u8"Выбор стиля", imgui.ImVec2(94, 35)) then
      windows = 4
  end
  if imgui.Button(u8"Информация", imgui.ImVec2(94, 35)) then
      windows = 5
  end
  imgui.EndChild()
  imgui.SameLine()
  imgui.BeginChild("##Windows", imgui.ImVec2(550, 295), true, imgui.WindowFlags.NoScrollbar)
Lua:
local names = {u8"Телепорт", u8"Бебра", u8"Чукча"} -- массив с названиями вкладок, 1 вкладка - 1 первое название
local windows = 1 --[[ указатель на выбранную позицию 
она равна 1, чтобы при открытии окна была активна 1 вкладка, то есть указатель]] 

-- в имгуи окне
imgui.BeginChild("Не принципиально", imgui.ImVec2(228, 1337), true -- [[наличие обводки]]) -- начинаем чайлд с вкладками
for i = 1, #names do -- от 1 до кол-ва названий
    if imgui.Button(names[i], imgui.ImVec2(94 --[[size x]], 35 --[[size y]])) then -- если нажата кнопка
    windows = i -- выбранная будет равна нажатой кнопке
    end
end
imgui.EndChild()

if windows == 1 then -- если указатель(выбранная вкладка) равна 1, то
    imgui.Text(u8"Ты на вкладке номер 1 :)") -- Что находится во вкладке
end
чел... не усложняй жизнь новичку :((
 
  • Нравится
Реакции: sdfy

Rice.

https://t.me/riceoff
Модератор
1,689
1,427
Lua:
local names = {u8"Телепорт", u8"Бебра", u8"Чукча"} -- массив с названиями вкладок, 1 вкладка - 1 первое название
local windows = 1 -- указатель на выбранную позицию

-- в имгуи окне
for i = 1, #names do -- от 1 до кол-ва названий
    if imgui.Button(names[i], imgui.ImVec2(94 --[[size x]], 35 --[[size y]])) then -- если нажата кнопка
    windows = i -- выбранная будет равна нажатой кнопке
    end
end

if windows == 1 then
    imgui.Text(u8"Ты на вкладке номер 1 :)")
end
чел... не усложняй жизнь новичку :((
Пусть работает без массивов, так будет легче для осознания. Будет время - научится и поймет.
 

SomaGnoma

Известный
442
152
Пусть работает без массивов, так будет легче для осознания. Будет время - научится и поймет.
ну да пусть чел работает с имгуи, не зная основ..
сразу надо приучать к правильному решению, а не миллион действий и говно в коде :)
 

Rice.

https://t.me/riceoff
Модератор
1,689
1,427
ну да пусть чел работает с имгуи, не зная основ..
сразу надо приучать к правильному решению, а не миллион действий и говно в коде :)
У всех разный подход к написанию скриптов. Я лично ничего не читал и учился на своих ошибках. Всё приходит с опытом. Не всегда новичку будет легче работать с массивами, чем с говнокодом. Потом он сам поймет, что код можно усовершенствовать с помощью массивов.
 

SomaGnoma

Известный
442
152
У всех разный подход к написанию скриптов. Я лично ничего не читал и учился на своих ошибках. Всё приходит с опытом. Не всегда новичку будет легче работать с массивами, чем с говнокодом. Потом он сам поймет, что код можно усовершенствовать с помощью массивов.
А зачем человек написал сюда? За помощью в написании кода и объяснению чего да как, или для того чтобы узнать, что оказывается учиться надо онли на своих ошибках и делать норм код сразу нельзя, ведь ты новичок?
И не сри в теме, я просто показал как вариант, чел выберет то ему проще.