Нужна помощь с ИМГУИ

lariks

Новичок
Автор темы
10
0
Страдаю этой фигнёй второй день,поэтому многое не знаю :)
Каким образом сделать так,чтобы по нажатию на imgui.Button справа от него отрисовывался imgui.Columns


click - картинка
 
Решение
Если ты хочешь сделать меню:

Lua:
--Где-то в коде над onDrawFrame:
local CurrentMenuItem = -1

--onDrawFrame
if imgui.Button("Выбрать сервер") then
    CurrentMenuItem = (CurrentMenuItem == 1) and -1 or 1
end
if imgui.Button("Второе меню") then
    CurrentMenuItem = (CurrentMenuItem == 2) and -1 or 2
end
if imgui.Button("Информация") then
    CurrentMenuItem = (CurrentMenuItem == 3) and -1 or 3
end

if CurrentMenuItem == 1 then
    imgui.Text("Выбор сервера")
elseif CurrentMenuItem == 2 then
    imgui.Text("Какое-то меню")
elseif CurrentMenuItem == 3 then
    imgui.Text("Информация тут какая-нибудь")
end

user164451

Потрачен
406
125
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Страдаю этой фигнёй второй день,поэтому многое не знаю :)
Каким образом сделать так,чтобы по нажатию на imgui.Button справа от него отрисовывался imgui.Columns


click - картинка
if imgui.Button then imgui.Columns
 

lariks

Новичок
Автор темы
10
0
кодь скинь который у тебя, который крашится
Lua:
function cmd_price(arg)
    main_window_state.v = not main_window_state.v
    imgui.Process = main_window_state.v
end
   
function imgui.OnDrawFrame()
  if main_window_state.v then
    imgui.SetNextWindowSize(imgui.ImVec2(550, 330), imgui.Cond.FirstUseEver)
    imgui.Begin('....', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoMove)
    imgui.Separator()
   if imgui.Button(u8'Выбрать сервер',imgui.ImVec2(180,70)) then
   
        end
        if imgui.Button(u8'Настройки',imgui.ImVec2(180,70)) then
   
        end
        if imgui.Button(u8'Информация',imgui.ImVec2(180,70)) then
   
        end
        if imgui.Button(u8'Перезагрузить скрипт',imgui.ImVec2(180,70)) then
   
        end
    imgui.End()
  end
end
 

Tuseyanno

Новичок
2
0
Страдаю этой фигнёй второй день,поэтому многое не знаю :)
Каким образом сделать так,чтобы по нажатию на imgui.Button справа от него отрисовывался imgui.Columns


click - картинка
скрипт крашится блин
Lua:
if imgui.Button('Показать таблицу') then
    imgui.Columns(2 --[[ Количество столбцов --]])
        imgui.Text('Первый столбец')
        imgui.NextColumn() -- Переходим к следующему столбцу
        imgui.Text('Второй столбец')
    imgui.Columns(1)
end
 

lariks

Новичок
Автор темы
10
0
Lua:
if imgui.Button('Показать таблицу') then
    imgui.Columns(2 --[[ Количество столбцов --]])
        imgui.Text('Первый столбец')
        imgui.NextColumn() -- Переходим к следующему столбцу
        imgui.Text('Второй столбец')
    imgui.Columns(1)
end
Всеравно чет не то)



Lua:
function cmd_price(arg)
    main_window_state.v = not main_window_state.v
    imgui.Process = main_window_state.v
end
    
function imgui.OnDrawFrame()
  if main_window_state.v then
    imgui.SetNextWindowSize(imgui.ImVec2(550, 318), imgui.Cond.FirstUseEver)
    imgui.Begin('ARZ helper', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoMove)
    imgui.Separator()
   if imgui.Button(u8'Выбрать сервер',imgui.ImVec2(180,67)) then
    
     imgui.Columns(1 --[[ Количество столбцов --]])
        imgui.Text('Первый столбец')
        imgui.NextColumn() -- Переходим к следующему столбцу
        imgui.Text('Второй столбец')
    imgui.Columns(1)
        end
        if imgui.Button(u8'Настройки',imgui.ImVec2(180,67)) then
    
        end
        if imgui.Button(u8'Информация',imgui.ImVec2(180,67)) then
    
        end
        if imgui.Button(u8'Перезагрузить скрипт',imgui.ImVec2(180,67)) then
    
        end
    imgui.End()
  end
end
 

Tuseyanno

Новичок
2
0
Всеравно чет не то)
Код:
-- В начале кода:
local show_table = false -- Значение отображения таблицы по-умолчанию (true - показана | false - не показана)

-- В коде окна ImGui:
if imgui.Button((show_table and 'Скрыть' or 'Показать') .. ' таблицу') then
    show_talbe = not show_table
end
if show_table then
    imgui.Columns(2 --[[ Количество столбцов --]])
        imgui.Text('Первый столбец')
        imgui.NextColumn() -- Переходим к следующему столбцу
        imgui.Text('Второй столбец')
    imgui.Columns(1)
end
 

lariks

Новичок
Автор темы
10
0
Код:
-- В начале кода:
local show_table = false -- Значение отображения таблицы по-умолчанию (true - показана | false - не показана)

-- В коде окна ImGui:
if imgui.Button((show_table and 'Скрыть' or 'Показать') .. ' таблицу') then
    show_talbe = not show_table
end
if show_table then
    imgui.Columns(2 --[[ Количество столбцов --]])
        imgui.Text('Первый столбец')
        imgui.NextColumn() -- Переходим к следующему столбцу
        imgui.Text('Второй столбец')
    imgui.Columns(1)
end
Да ты не так меня понял,мне нужно,чтобы по нажатию на imgui.Button появлялись эти таблички,а они там,по твоему скрипту, находятся постоянно,не важно,нажимал ли я на button или нет.
и еще вопрос,почему вот например в этом коде (ниже) по нажатию на imgui Button появляется текст,но сразу же исчезает. Вот фрапс
Вот этот TEXT появляется и исчезает

Lua:
function imgui.OnDrawFrame()
  if main_window_state.v then
    imgui.SetNextWindowSize(imgui.ImVec2(550, 318), imgui.Cond.FirstUseEver)
    imgui.Begin('ARZ helper', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoMove)
        if imgui.Button(u8'Информация',imgui.ImVec2(155,67)) then
        imgui.Text(u8'TEST ')
        end
        if imgui.Button(u8'Перезагрузить скрипт',imgui.ImVec2(155,67)) then
        thisScript():reload()
        end
    imgui.End()
  end
end
 

7jizzle

Участник
238
15
Да ты не так меня понял,мне нужно,чтобы по нажатию на imgui.Button появлялись эти таблички,а они там,по твоему скрипту, находятся постоянно,не важно,нажимал ли я на button или нет.
и еще вопрос,почему вот например в этом коде (ниже) по нажатию на imgui Button появляется текст,но сразу же исчезает. Вот фрапс
Вот этот TEXT появляется и исчезает

Lua:
function imgui.OnDrawFrame()
  if main_window_state.v then
    imgui.SetNextWindowSize(imgui.ImVec2(550, 318), imgui.Cond.FirstUseEver)
    imgui.Begin('ARZ helper', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoMove)
        if imgui.Button(u8'Информация',imgui.ImVec2(155,67)) then
        imgui.Text(u8'TEST ')
        end
        if imgui.Button(u8'Перезагрузить скрипт',imgui.ImVec2(155,67)) then
        thisScript():reload()
        end
    imgui.End()
  end
end
Ты не понимаешь что происходит при нажатии на кнопку.
Lua:
local pirivet = 0 -- в инт легче подключать несколько кнопок чем создавать для каждой отдельную переменную

--OnDrawFrame
if imgui.Button(u8"Показать текст") then
    if pirivet == 0 then pirivet = 1 elseif pirivet == 1 then pirivet = 0 end -- Если кнопка уже активна то ты вырубаешь её.
end
if pirivet == 1 then
    imgui.Text(u8"TEXT")
end

upd по такому же принципу Columns отрисовывай.
 
Последнее редактирование:

lariks

Новичок
Автор темы
10
0
Ты не понимаешь что происходит при нажатии на кнопку.
Lua:
local pirivet = 0 -- в инт легче подключать несколько кнопок чем создавать для каждой отдельную переменную

--OnDrawFrame
if imgui.Button(u8"Показать текст") then
    if pirivet == 0 then pirivet = 1 elseif pirivet == 1 then pirivet = 0 end -- Если кнопка уже активна то ты вырубаешь её.
end
if pirivet == 1 then
    imgui.Text(u8"TEXT")
end

upd по такому же принципу Columns отрисовывай.
Спасибо,помог :)
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,746
4,831
Если ты хочешь сделать меню:

Lua:
--Где-то в коде над onDrawFrame:
local CurrentMenuItem = -1

--onDrawFrame
if imgui.Button("Выбрать сервер") then
    CurrentMenuItem = (CurrentMenuItem == 1) and -1 or 1
end
if imgui.Button("Второе меню") then
    CurrentMenuItem = (CurrentMenuItem == 2) and -1 or 2
end
if imgui.Button("Информация") then
    CurrentMenuItem = (CurrentMenuItem == 3) and -1 or 3
end

if CurrentMenuItem == 1 then
    imgui.Text("Выбор сервера")
elseif CurrentMenuItem == 2 then
    imgui.Text("Какое-то меню")
elseif CurrentMenuItem == 3 then
    imgui.Text("Информация тут какая-нибудь")
end
 
  • Нравится
Реакции: user164451