在 C++ 中将 GUI 与 OpenGL 集成
Posted
技术标签:
【中文标题】在 C++ 中将 GUI 与 OpenGL 集成【英文标题】:Integrate GUI with OpenGL in C++ 【发布时间】:2017-04-09 22:40:15 【问题描述】:我需要创建一个带有文件菜单和用户可以在其中输入参数的菜单的 GUI。然后这些参数用于在作为应用程序窗口一部分的画布中绘制矩形。有没有办法将 OpenGL 子窗口缩放到屏幕的一个部分,并将参数输入到另一部分?应用程序需要用 C++ 编写。
是否可以使用 QT 创建 GUI 并使用 OpenGL 在同一窗口中绘制矩形?如果不是,将 GUI 与 OpenGL 集成的常用方法是什么? (或任何其他我可以用来从点尽可能简单地绘制矩形的图形库)
编辑:我不确定是否需要 OpenGL,或者是否有办法像在 Java 中使用paintComponent() 那样在画布上绘制矩形。 我以前从未使用过 QT,所以我不知道它的功能。
【问题讨论】:
你试过用谷歌搜索“qt opengl”吗? 感谢您的建设性意见 【参考方案1】:您可以单独使用 opengl 窗口,也可以在公共主窗口中使用它。上一个示例(在第一个答案中)显示了如何在 qt 中单独使用 opengl 窗口,而不与 Qt 的其他组件(如菜单、工具栏和...)进行通信。但是您可以将 opengl 窗口添加到主窗口(如其他小部件)并将其与其他小部件一起使用。这个example可以帮助你。
【讨论】:
【参考方案2】:是的,将 OpenGL 与 Qt 一起使用是绝对可能的。甚至还有一个example,Qt 为使用OpenGL 的更面向对象的方式提供了类。查看here(“OpenGL 和 OpenGL ES 集成”部分)了解更多详情。
【讨论】:
谢谢!有没有办法将 OpenGL 子窗口缩放到屏幕的一个部分,并将参数输入到另一部分?以上是关于在 C++ 中将 GUI 与 OpenGL 集成的主要内容,如果未能解决你的问题,请参考以下文章
将 Unity3D 用作带有 OpenGL 应用程序的 Win32 c++ 的 GUI
如何检测与 C++、OpenGL 和 freeglut 的冲突?