ZBLOG

实现一个ImGui::BeginCombo()用法的完整代码示例

下面是一个使用Dear ImGui库的ImGui::BeginCombo()函数的完整代码示例:

  1. #include <imgui.h>
  2. #include <imgui_impl_glfw.h>
  3. #include <imgui_impl_opengl3.h>
  4. int main()
  5. {
  6. // 初始化GLFW窗口和OpenGL上下文
  7. glfwInit();
  8. GLFWwindow* window = glfwCreateWindow(800, 600, "ImGui BeginCombo示例", nullptr, nullptr);
  9. glfwMakeContextCurrent(window);
  10. // 初始化Dear ImGui
  11. IMGUI_CHECKVERSION();
  12. ImGui::CreateContext();
  13. ImGuiIO& io = ImGui::GetIO(); (void)io;
  14. // 配置Dear ImGui为在OpenGL3上渲染
  15. ImGui_ImplGlfw_InitForOpenGL(window, true);
  16. ImGui_ImplOpenGL3_Init("#version 330");
  17. // 设置样式
  18. ImGui::StyleColorsDark();
  19. while (!glfwWindowShouldClose(window))
  20. {
  21. glfwPollEvents();
  22. // 开始新的帧,并开始创建GUI元素
  23. ImGui_ImplOpenGL3_NewFrame();
  24. ImGui_ImplGlfw_NewFrame();
  25. ImGui::NewFrame();
  26. // 创建一个具有下拉选项的Combo Box
  27. static const char* items[] = { "选项1", "选项2", "选项3" };
  28. static int currentItem = 0;
  29. if (ImGui::Begin("示例窗口"))
  30. {
  31. if (ImGui::BeginCombo("下拉框", items[currentItem]))
  32. {
  33. for (int i = 0; i < IM_ARRAYSIZE(items); i++)
  34. {
  35. bool isSelected = (currentItem == i);
  36. if (ImGui::Selectable(items[i], isSelected))
  37. currentItem = i;
  38. if (isSelected)
  39. ImGui::SetItemDefaultFocus();
  40. }
  41. ImGui::EndCombo();
  42. }
  43. }
  44. ImGui::End();
  45. // 渲染GUI
  46. glClearColor(0.45f, 0.55f, 0.60f, 1.00f);
  47. glClear(GL_COLOR_BUFFER_BIT);
  48. ImGui::Render();
  49. ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
  50. glfwSwapBuffers(window);
  51. }
  52. // 清理Dear ImGui和GLFW资源
  53. ImGui_ImplOpenGL3_Shutdown();
  54. ImGui_ImplGlfw_Shutdown();
  55. ImGui::DestroyContext();
  56. glfwDestroyWindow(window);
  57. glfwTerminate();
  58. return 0;
  59. }

请确保你已经正确安装并链接了Dear ImGui库,以及相关的GLFW和OpenGL库。此示例演示了如何使用ImGui::BeginCombo()函数创建一个具有下拉选项的Combo Box,并处理选择事件。你可以根据自己的需求进行修改和扩展。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=13692

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?