Как сделать в имгуи вторую страницу?

Dezmondli

Активный
Автор темы
405
78
Как просто напросто сделать вторю страницу, где просто напросто можно вести текст??
 
Решение
вот тебе рабочий пример:
require "lib.moonloader"
local imgui = require 'imgui'
local encoding = require 'encoding'
encoding.default = 'cp1251'
local u8 = encoding.UTF8
local cp = encoding.cp1251
local menu = {true,
    false,   
}
main_window_state = imgui.ImBool(false)
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('test', cmd_openwind)
    imgui.Process = false
    while true do wait(0)
    end
end


function uu()
    for i = 0,2 do
        menu[i] = false
    end
end
function imgui.OnDrawFrame()

    if not main_window_state.v then
        imgui.Process = false
    end
    
        if main_window_state.v then
            local sw, sh =...

Dezmondli

Активный
Автор темы
405
78

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,777
11,225
Я дурачок( не правильно написал, мне надо короче в впервом окне вкладку которая будет перекидывать на другое окно, заранее спасибо))
Lua:
if imgui.Button('open') then
    firstWin.v = false
    secondWin.v = true
end
совмести это с кодом из темы, ссылку на которую я кинул
 

Dezmondli

Активный
Автор темы
405
78
Lua:
if imgui.Button('open') then
    firstWin.v = false
    secondWin.v = true
end
совмести это с кодом из темы, ссылку на которую я кинул
Я в правду дурачок( я что-то напутал надеюсь что ты поможешь, я просто все забыл вот 1 день как начал по новой скрипты делать, присерно участок проблемный выглядит так
Lua:
function imgui.OnDrawFrame()
    if  firstWin.v then
     imgui.Begin("Quinside beta V.0.0.1", main_window_state)
     imgui.Text(u8 'оргнвкукенепр')
     imgui.End()
   end
    if secondWin.v then
     imgui.Begin(".0.0.1,", secondWin)
     imgui.Text(u8"Second window")
     imgui.End()
   end
end
Вот если я удалю все что связано с 2 страницой то все будет ок но она мне понадобится очень сильно
 

ice_ice

Участник
61
14
вот тебе рабочий пример:
require "lib.moonloader"
local imgui = require 'imgui'
local encoding = require 'encoding'
encoding.default = 'cp1251'
local u8 = encoding.UTF8
local cp = encoding.cp1251
local menu = {true,
    false,   
}
main_window_state = imgui.ImBool(false)
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('test', cmd_openwind)
    imgui.Process = false
    while true do wait(0)
    end
end


function uu()
    for i = 0,2 do
        menu[i] = false
    end
end
function imgui.OnDrawFrame()

    if not main_window_state.v then
        imgui.Process = false
    end
    
        if main_window_state.v then
            local sw, sh = getScreenResolution()
            imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
            imgui.SetNextWindowSize(imgui.ImVec2(222, 195), imgui.Cond.FirstUseEver)
            imgui.Begin('NameScript', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
            if menu[1] then   
                if imgui.Button(u8'Окно2', imgui.SetCursorPos(imgui.ImVec2(10, 30))) then
                    uu() menu[2] = true
                end
            end
            if menu[2] then
                imgui.Text('2winodw')
                if imgui.Button(u8'x', imgui.SetCursorPos(imgui.ImVec2(187, 30))) then
                    uu() menu[1] = true
                end               
            end
        end
       imgui.End()
  
end
function cmd_openwind()
    main_window_state.v = not main_window_state.v
    imgui.Process = main_window_state.v
end
 
  • Нравится
Реакции: Dezmondli

Dezmondli

Активный
Автор темы
405
78
вот тебе рабочий пример:
require "lib.moonloader"
local imgui = require 'imgui'
local encoding = require 'encoding'
encoding.default = 'cp1251'
local u8 = encoding.UTF8
local cp = encoding.cp1251
local menu = {true,
    false,  
}
main_window_state = imgui.ImBool(false)
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('test', cmd_openwind)
    imgui.Process = false
    while true do wait(0)
    end
end


function uu()
    for i = 0,2 do
        menu[i] = false
    end
end
function imgui.OnDrawFrame()

    if not main_window_state.v then
        imgui.Process = false
    end
   
        if main_window_state.v then
            local sw, sh = getScreenResolution()
            imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
            imgui.SetNextWindowSize(imgui.ImVec2(222, 195), imgui.Cond.FirstUseEver)
            imgui.Begin('NameScript', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
            if menu[1] then  
                if imgui.Button(u8'Окно2', imgui.SetCursorPos(imgui.ImVec2(10, 30))) then
                    uu() menu[2] = true
                end
            end
            if menu[2] then
                imgui.Text('2winodw')
                if imgui.Button(u8'x', imgui.SetCursorPos(imgui.ImVec2(187, 30))) then
                    uu() menu[1] = true
                end              
            end
        end
       imgui.End()
 
end
function cmd_openwind()
    main_window_state.v = not main_window_state.v
    imgui.Process = main_window_state.v
end
Спасибо что помог, но появилась ошибка, когда я закрываю на крестик имгуи окно, у меня ошибка Майкрософт визуал
 

ice_ice

Участник
61
14
Спасибо что помог, но появилась ошибка, когда я закрываю на крестик имгуи окно, у меня ошибка Майкрософт визуал
48 и 49 строки местами поменяй) я чутка косячнул
 
  • Нравится
Реакции: Dezmondli

Dezmondli

Активный
Автор темы
405
78
48 и 49 строки местами поменяй) я чутка косячнул
Прости за встоль тупые вопросы)) я имгуи ток осваиваю) как текст просто вставить в обычное окно, извини, не злись на мою тупость(( заранее спасибо просто я помню на imgui.text или как там, водился текст, а тут текст на кнопку, ищёраз заранее спасибо
 

ice_ice

Участник
61
14
Прости за встоль тупые вопросы)) я имгуи ток осваиваю) как текст просто вставить в обычное окно, извини, не злись на мою тупость(( заранее спасибо просто я помню на imgui.text или как там, водился текст, а тут текст на кнопку, ищёраз заранее спасибо
imgui.Text(u8"текст") будут вопросы пиши в лс помогу
 
  • Нравится
Реакции: Dezmondli

lorgon

Известный
657
268
Есть ли примеры вертикальных меню на mimgui? Типо таких

56a74b3f98663-250949.png
 

ice_ice

Участник
61
14
Есть ли примеры вертикальных меню на mimgui? Типо таких

56a74b3f98663-250949.png
самый простой вариант создать child и забить его кнопками

самый простой вариант создать child и забить его кнопками

что то типо такого:
require "lib.moonloader"
local imgui = require 'imgui'
local encoding = require 'encoding'
encoding.default = 'cp1251'
local u8 = encoding.UTF8
local cp = encoding.cp1251
local menu = {true,
    false,
    false,
}
main_window_state = imgui.ImBool(false)
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('test', cmd_openwind)
    imgui.Process = false
    while true do wait(0)
    end
end
function uu()
    for i = 0,3 do
        menu[i] = false
    end
end
function imgui.OnDrawFrame()

    if not main_window_state.v then
        imgui.Process = false
    end
    

        if main_window_state.v then
        local sw, sh = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(222, 195), imgui.Cond.FirstUseEver)
        
       imgui.Begin('NameScript', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
        imgui.Columns(2, "nnn", true, imgui.SetCursorPos(imgui.ImVec2(5, 25)))
        imgui.SetColumnWidth(-1,58)
            imgui.BeginChild("oknodlyaknopok", imgui.ImVec2(50, 155), true, imgui.WindowFlags.NoScrollbar)
                if imgui.Button(u8'Окно1', imgui.SetCursorPos(imgui.ImVec2(5, 7))) then
                    uu() menu[1] = true
                end
                if imgui.Button(u8'Окно2', imgui.SetCursorPos(imgui.ImVec2(5, 32))) then
                    uu() menu[2] = true
                end   
                if imgui.Button(u8'Окно3', imgui.SetCursorPos(imgui.ImVec2(5, 57))) then
                    uu() menu[3] = true
                end   
            imgui.EndChild()   
        imgui.NextColumn()
        if menu[1] then
            imgui.Text(u8'1 меню')
        end
        if menu[2] then
            imgui.Text(u8'2 меню')
        end
        if menu[3] then
            imgui.Text(u8'3 меню')
        end
        imgui.End()
        end
      
  
end
function cmd_openwind(arg)
    main_window_state.v = not main_window_state.v
    imgui.Process = main_window_state.v
end
 
Последнее редактирование:
  • Грустно
Реакции: lorgon