Как сделать вкладку, в которой есть еще сворачиваемая(-ое) вкладочка(-и)

MastiArz

Новичок
Автор темы
3
0
подскажите код, чтобы сверху была вкладка(mimgui) в которой были другие сворачиваемые вкладочки
типо этого:
Первая вкладка Основная вкладка вторая вкладка
> вкладочка> что то еще> устав
 

MLycoris

Режим чтения
Проверенный
1,821
1,860
 
  • Нравится
Реакции: percheklii

MastiArz

Новичок
Автор темы
3
0

надо например как у саши резон, у него в одной вкладке есть другие сворачиваемые вкладочки.


подскажите код, чтобы сверху была вкладка(mimgui) в которой были другие сворачиваемые вкладочки
типо этого:
Первая вкладка Основная вкладка вторая вкладка
> вкладочка> что то еще> устав
.
 
  • Клоун
Реакции: MLycoris

ChromiusJ

Известный
Друг
4,900
3,189
надо например как у саши резон, у него в одной вкладке есть другие сворачиваемые вкладочки.
хоть бы показал скрины в качестве примера, форум наверное не забыл легенду детства сашу резона,ведь его все знают
 

percheklii

Известный
728
267
хоть бы показал скрины в качестве примера, форум наверное не забыл легенду детства сашу резона,ведь его все знают
я так понял, ему надо чтобы во вкладках было еще imgui.CollapsingHeader

подскажите код, чтобы сверху была вкладка(mimgui) в которой были другие сворачиваемые вкладочки
типо этого:
Первая вкладка Основная вкладка вторая вкладка
> вкладочка> что то еще> устав
ты про это?
1712236222009.png


Lua:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8

local WinState = imgui.new.bool()

local tab = 1 -- в этой переменной будет хранится номер открытой вкладки

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500, 500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(500, 300), imgui.Cond.Always)
    imgui.Begin(u8'Пример', WinState, imgui.WindowFlags.NoResize)
    for numberTab,nameTab in pairs({'Основное','Настройки','Инфа'}) do -- создаём и парсим таблицу с названиями будущих вкладок
    imgui.SameLine()
        if imgui.Button(u8(nameTab), imgui.ImVec2(80,24)) then -- 2ым аргументом настраивается размер кнопок (подробнее в гайде по мимгуи)
            tab = numberTab -- меняем значение переменной tab на номер нажатой кнопки
        end
    end
    if imgui.BeginChild('Name##'..tab, imgui.ImVec2(500, 250), true) then -- [Для декора] Создаём чайлд в который поместим содержимое
        -- == [Основное] Содержимое вкладок == --
        if tab == 1 then -- если значение tab == 1
            if imgui.CollapsingHeader("test") then
                imgui.Text(u8'Открыта первая вкладка "Основное"')
                if imgui.Button(u8'Кнопка') then
                    sampAddChatMessage('Вы нажали кнопку во вкладке номер '..tab, -1)
                end
        end
        
        if imgui.CollapsingHeader("test2") then
        end
        elseif tab == 2 then -- если значение tab == 2
            -- == Содержимое вкладки №2
            imgui.Text(u8'Открыта первая вкладка "Настройки"')
            if imgui.Button(u8'Кнопка') then
                sampAddChatMessage('Вы нажали кнопку во вкладке номер '..tab, -1)
            end
        elseif tab == 3 then -- если значение tab == 3
            -- == Содержимое вкладки №3
            imgui.Text(u8'Открыта первая вкладка "Инфа"')
            if imgui.Button(u8'Кнопка') then
                sampAddChatMessage('Вы нажали кнопку во вкладке номер '..tab, -1)
            end
        end
        -- == [Основное] Содержимое вкладок закончилось == --
        imgui.EndChild()
    end
    imgui.End()
end)

function main()
    sampRegisterChatCommand('cmd', function() WinState[0] = not WinState[0] end)
    wait(-1)
end
 
Последнее редактирование:
  • Нравится
Реакции: MLycoris

Kusnrchik

Новичок
6
1
я так понял, ему надо чтобы во вкладках было еще imgui.CollapsingHeader


ты про это?


Lua:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8

local WinState = imgui.new.bool()

local tab = 1 -- в этой переменной будет хранится номер открытой вкладки

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500, 500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(500, 300), imgui.Cond.Always)
    imgui.Begin(u8'Пример', WinState, imgui.WindowFlags.NoResize)
    for numberTab,nameTab in pairs({'Основное','Настройки','Инфа'}) do -- создаём и парсим таблицу с названиями будущих вкладок
    imgui.SameLine()
        if imgui.Button(u8(nameTab), imgui.ImVec2(80,24)) then -- 2ым аргументом настраивается размер кнопок (подробнее в гайде по мимгуи)
            tab = numberTab -- меняем значение переменной tab на номер нажатой кнопки
        end
    end
    if imgui.BeginChild('Name##'..tab, imgui.ImVec2(500, 250), true) then -- [Для декора] Создаём чайлд в который поместим содержимое
        -- == [Основное] Содержимое вкладок == --
        if tab == 1 then -- если значение tab == 1
            if imgui.CollapsingHeader("test") then
                imgui.Text(u8'Открыта первая вкладка "Основное"')
                if imgui.Button(u8'Кнопка') then
                    sampAddChatMessage('Вы нажали кнопку во вкладке номер '..tab, -1)
                end
        end
       
        if imgui.CollapsingHeader("test2") then
        end
        elseif tab == 2 then -- если значение tab == 2
            -- == Содержимое вкладки №2
            imgui.Text(u8'Открыта первая вкладка "Настройки"')
            if imgui.Button(u8'Кнопка') then
                sampAddChatMessage('Вы нажали кнопку во вкладке номер '..tab, -1)
            end
        elseif tab == 3 then -- если значение tab == 3
            -- == Содержимое вкладки №3
            imgui.Text(u8'Открыта первая вкладка "Инфа"')
            if imgui.Button(u8'Кнопка') then
                sampAddChatMessage('Вы нажали кнопку во вкладке номер '..tab, -1)
            end
        end
        -- == [Основное] Содержимое вкладок закончилось == --
        imgui.EndChild()
    end
    imgui.End()
end)

function main()
    sampRegisterChatCommand('cmd', function() WinState[0] = not WinState[0] end)
    wait(-1)
end
+

Но только как тут→
 
Последнее редактирование: