Вопрос Imgui как сделать табы?

  • Автор темы Автор темы Blackbro
  • Дата начала Дата начала
Imgui Seller
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
26 Авг 2023
Сообщения
589
Реакции
60
хочу сделать такие, шрифт в байтах уже готов, просто не писал никогда свои табы, может есть у кого пример похожих, которым вы можете поделиться?
1741427100976.png
 
создаешь invisibleButton(как то так) и поверх иконку
 

Вложения

  • 1741431410657.png
    1741431410657.png
    289 KB · Просмотры: 73
  • 1741431437247.png
    1741431437247.png
    165.6 KB · Просмотры: 69
Скрытое содержимое

как будто не слишком правильный метод, вроде все пишут кастомную функцию tab и ее используют
блять ну так напиши ее, че спрашиваешь тогда
 
Скрытое содержимое

как будто не слишком правильный метод, вроде все пишут кастомную функцию tab и ее используют
я те самое простое написал, не сильно в имгуи шарю
 
Я тоже не особо шарю в табах, сделал через кнопки, чайлды, группы
C++:
Expand Collapse Copy
enum eTabs {
    OpenCV,
    Memory,
    Record,
    Settings,
    Config
};
C++:
Expand Collapse Copy
    static int iTab = 0;
    const char* szTab[] = { "OpenCV", u8"Память", u8"Запись", u8"Настройки", u8"Конфиг" };
    ImGui::BeginGroup();
    ImGui::BeginChild("##Tabs", { 100, 410 }, true, window);
    {
        if (ImGui::Button(szTab[OpenCV], ImVec2(85, 50))) iTab = OpenCV;
        if (ImGui::Button(szTab[Memory], ImVec2(85, 50))) iTab = Memory;
        if (ImGui::Button(szTab[Record], ImVec2(85, 50))) iTab = Record;
           if (ImGui::Button(szTab[Settings], ImVec2(85, 50))) iTab = Settings;
        if (ImGui::Button(szTab[Config], ImVec2(85, 50))) iTab = Config;

        ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 75);
        if (ImGui::Button(u8"Выход##Button", ImVec2(85, 50)))
            ImGui::OpenPopup(u8"Выход##Popup");
       
        ImGui::SetNextWindowPos(center, ImGuiCond_Appearing, ImVec2(0.5f, 0.5f));
        if (ImGui::BeginPopupModal(u8"Выход##Popup", NULL, modual | ImGuiWindowFlags_NoMove))
        {
            ImGui::Text(u8"Выключаемся?");
            ImGui::Spacing();
               ImGui::Separator();
            ImGui::Spacing();
            if (ImGui::Button(u8"Да", { 120, 30 })) {
                m_shutdown = true;
            }

            ImGui::SameLine();

            if (ImGui::Button(u8"Нет", { 120, 30 })) ImGui::CloseCurrentPopup();
                ImGui::EndPopup();
        }
        ImGui::EndChild();
    }
    ImGui::EndGroup();
C++:
Expand Collapse Copy
ImGui::BeginGroup();
ImGui::BeginChild("##Main", { 400, 410 }, true, window | ImGuiWindowFlags_MenuBar);
{
    if (ImGui::BeginMenuBar()) ImGui::TextUnformatted(szTab[iTab]), ImGui::EndMenuBar();
    if (iTab == OpenCV) {

    }
    else if (iTab == Memory) {

    }
    else if (iTab == Record) {
       
    }

    else if (iTab == Settings) {
       
    }

    else if (iTab == Config) {
       
    }

    ImGui::EndChild();
}

ImGui::EndGroup();
 
Назад
Сверху Снизу