ImGui-imgui實例解析之ShowDemoWindow


 

 

imgui實例解析之ShowDemoWindow

實例入口:實例的總入口。
ShowDemoWindow
斷言:判斷IMGUI上下文是否正常,如果不正常后面的函數將全部報錯,所以在此斷言。
IM_ASSERT(ImGui::GetCurrentContext() != NULL && "Missing dear imgui context. Refer to examples app!");
ini文件:如果.ini文件中沒有數據,我們將指定默認位置/大小。
const ImGuiViewport* main_viewport = ImGui::GetMainViewport();
設置位置
ImGui::SetNextWindowPos(ImVec2(main_viewport->WorkPos.x + 650, main_viewport->WorkPos.y + 20), ImGuiCond_FirstUseEver);
設置大小:
ImGui::SetNextWindowSize(ImVec2(550, 680), ImGuiCond_FirstUseEver);
主窗體:窗體標題也是這個設置的。
if (!ImGui::Begin("Dear ImGui Demo", p_open, window_flags))
{
// Early out if the window is collapsed, as an optimization.
ImGui::End();
return;
}
設置寬度:
ImGui::PushItemWidth(ImGui::GetFontSize() * -12);
// 例如,將2/3的空間用於小部件,1/3的空間用於標簽(右對齊)
// ImGui::PushItemWidth(-ImGui::GetWindowWidth() * 0.35f);
增加菜單工具條:
if (ImGui::BeginMenuBar())
{
// 例如:ImGui::BeginMenu("Menu")
ImGui::EndMenuBar();
}
增加菜單頭:
if (ImGui::BeginMenu("Menu"))
{
// 例如:ImGui::MenuItem("Main menu bar", NULL, &show_app_main_menu_bar);
ImGui::EndMenu();
}
增加菜單項:
ImGui::MenuItem("Main menu bar", NULL, &show_app_main_menu_bar);
增加LABEL:
ImGui::Text("dear imgui says hello. (%s)", IMGUI_VERSION);
增加間距:
ImGui::Spacing();
增加折疊標題:
if (ImGui::CollapsingHeader("Configuration"))
{
}
增加樹節點:
if (ImGui::TreeNode("Style"))
{
ImGui::ShowStyleEditor();// 調用IMGUI函數顯示設置
ImGui::TreePop();// 樹節點結束
ImGui::Separator();// 分離器,就是除最后一個節點外,之前增加的節點都增加一個。
}
增加幫助標記:
HelpMarker("The same contents can be accessed in 'Tools->Style Editor' or by calling the ShowStyleEditor() function.");
獲取IO:
ImGuiIO& io = ImGui::GetIO();
實例結束:
ImGui::PopItemWidth();
ImGui::End();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM