Пара вопросов по imgui

NotFound

Участник
Автор темы
77
23
Версия MoonLoader
.026-beta
Screenshot_1.png

1. Загрузил готовые стили, но при выборе их текст в кнопках сползает влево, хочу, чтобы был по середине, как это реализовать?
2. Пометил стрелочкой треугольник, который редактирует размер окна. Хотелось бы его убрать, как и функцию изменения окна.

Код:
if second_window_state.v then
        imgui.SetNextWindowSize(imgui.ImVec2(217, 150), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowPos(imgui.ImVec2((sw /2 + 500) , sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2( 0.5, 0.5 ))
        imgui.Begin(u8"Основное меню", second_window_state)
        if imgui.Button(u8'Профиль', imgui.ImVec2(200, 20)) then
          main_window_state.v = not main_window_state.v
          second_window_state.v = true
        end
        if imgui.Button(u8'Базы доклады (/base)', imgui.ImVec2(200, 20)) then
          base_window_state.v = not base_window_state.v
          second_window_state.v = true
        end
        if imgui.Button(u8'Помошник (/bind)', imgui.ImVec2(200, 20)) then
          bind_window_state.v = not bind_window_state.v
          second_window_state.v = true
        end
        if imgui.Button(u8'Темы', imgui.ImVec2(200, 20)) then
          themes_window_state.v = not themes_window_state.v
          second_window_state.v = true
        end
        if imgui.Button(u8'Инфо', imgui.ImVec2(200, 20)) then
          info_window_state.v = not info_window_state.v
          second_window_state.v = true
        end
        imgui.End()
      end
Темы взяты здесь.
 
Решение
Код:
imgui.WindowFlags.NoResize

центрация текста - https://www.blast.hk/threads/119594/

Вот код без изменение размера, вроде так
Lua:
if second_window_state.v then
        imgui.SetNextWindowSize(imgui.ImVec2(217, 150), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowPos(imgui.ImVec2((sw /2 + 500) , sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2( 0.5, 0.5 ))
        imgui.Begin(u8"Основное меню", second_window_state, imgui.WindowFlags.NoResize)
        if imgui.Button(u8'Профиль', imgui.ImVec2(200, 20)) then
          main_window_state.v = not main_window_state.v
          second_window_state.v = true
        end
        if imgui.Button(u8'Базы доклады (/base)', imgui.ImVec2(200, 20)) then...

accord-

Потрачен
437
79
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
imgui.WindowFlags.NoResize

центрация текста - https://www.blast.hk/threads/119594/

Вот код без изменение размера, вроде так
Lua:
if second_window_state.v then
        imgui.SetNextWindowSize(imgui.ImVec2(217, 150), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowPos(imgui.ImVec2((sw /2 + 500) , sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2( 0.5, 0.5 ))
        imgui.Begin(u8"Основное меню", second_window_state, imgui.WindowFlags.NoResize)
        if imgui.Button(u8'Профиль', imgui.ImVec2(200, 20)) then
          main_window_state.v = not main_window_state.v
          second_window_state.v = true
        end
        if imgui.Button(u8'Базы доклады (/base)', imgui.ImVec2(200, 20)) then
          base_window_state.v = not base_window_state.v
          second_window_state.v = true
        end
        if imgui.Button(u8'Помошник (/bind)', imgui.ImVec2(200, 20)) then
          bind_window_state.v = not bind_window_state.v
          second_window_state.v = true
        end
        if imgui.Button(u8'Темы', imgui.ImVec2(200, 20)) then
          themes_window_state.v = not themes_window_state.v
          second_window_state.v = true
        end
        if imgui.Button(u8'Инфо', imgui.ImVec2(200, 20)) then
          info_window_state.v = not info_window_state.v
          second_window_state.v = true
        end
        imgui.End()
    end
 
  • Нравится
Реакции: NotFound

SomaGnoma

Известный
436
150
Посмотреть вложение 134543
1. Загрузил готовые стили, но при выборе их текст в кнопках сползает влево, хочу, чтобы был по середине, как это реализовать?
2. Пометил стрелочкой треугольник, который редактирует размер окна. Хотелось бы его убрать, как и функцию изменения окна.

Код:
if second_window_state.v then
        imgui.SetNextWindowSize(imgui.ImVec2(217, 150), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowPos(imgui.ImVec2((sw /2 + 500) , sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2( 0.5, 0.5 ))
        imgui.Begin(u8"Основное меню", second_window_state)
        if imgui.Button(u8'Профиль', imgui.ImVec2(200, 20)) then
          main_window_state.v = not main_window_state.v
          second_window_state.v = true
        end
        if imgui.Button(u8'Базы доклады (/base)', imgui.ImVec2(200, 20)) then
          base_window_state.v = not base_window_state.v
          second_window_state.v = true
        end
        if imgui.Button(u8'Помошник (/bind)', imgui.ImVec2(200, 20)) then
          bind_window_state.v = not bind_window_state.v
          second_window_state.v = true
        end
        if imgui.Button(u8'Темы', imgui.ImVec2(200, 20)) then
          themes_window_state.v = not themes_window_state.v
          second_window_state.v = true
        end
        if imgui.Button(u8'Инфо', imgui.ImVec2(200, 20)) then
          info_window_state.v = not info_window_state.v
          second_window_state.v = true
        end
        imgui.End()
      end
Темы взяты здесь.
1 - За отступы отвечает такой параметр, как FramePadding, меняешь его в ImGui теме
2 - У окна и прочих элементов есть флаги, отключающие или включающие фичи.
Чтобы врубить флаг отвечающий за "треугольник, который редактирует размер окна":
Lua:
local bebra = imgui.ImBool(false) -- переменная отвечающая за работу окна
-- во фрейме
imgui.Begin("название окошка", bebra, imgui.WindowFlags.NoResize)
Чтобы подрубить несколько флагов надо ставить перед ними "+"
 
  • Нравится
Реакции: NotFound