OpenGL中的GUI工具包
GUI Toolkit in OpenGL
我想开发一个应用程序(在c++中)类似于Pure Data,但有一个很酷的GUI和更好的文档…是的,像Max/MSP或Reaktor这样的东西,但是是免费开放的!
为了创造一个吸引人的,反应性的和可移植的界面,我正在考虑使用OpenGL。在我的脑海中有一些类似Blender的GUI。
在开始开发我的定制GUI工具包之前,我搜索了一下,以了解是否存在我可以使用的东西,我发现:
- Juce:它似乎很受支持,但我不明白你是否只能在你的界面中嵌入OpenGL画布,或者可以使用OpenGL渲染所有的小部件。nUI:看起来很酷很便携,但是……它的论坛是一个沙漠,真的很难找到一个教程!
- ceGUI, FLTK, GLUI:如此平坦和灰色;-)和任何仍然没有维护。
你知道其他的工具箱吗?如你所知,我正在寻找一个可移植的库(在c++中),快速和支持。
另一种可能性是使用SDL或Freeglut从头开始开发我的自定义工具包,在这种情况下,哪个可能是最好的解决方案?
注。阅读关于这个主题的其他线程,我注意到许多开发人员建议使用Qt…Qt能否依赖OpenGL进行渲染?或者只能承载OpenGL画布?无论如何,你认为有可能(具有良好的性能)在Qt中创建这样的东西:
- Reaktor GUI示例1Reaktor GUI示例2
- Blender合成示例
并没有真正好的openGL工具包,它们往往是为特定的应用而发明的,然后就被抛弃了。
是的Qt与openGL工作得很好,有一个openGL QGlWidget与完整的硬件加速(和可选的链接到openCL)。您可以在Qt应用程序中拥有尽可能多的QGLwidgets -每个控件都有自己的openGL命令。
你也可以混合Qt和openGL在同一个QGlWidget (http://doc.qt.nokia.com/qq/qq26-openglcanvas.html)
稍微偏离主题:你也可以选择Qt使用openGL进行所有渲染-这仍然是实验性的,但这意味着2d Qt在一些嵌入式平台(如手机)上可以快得多。编辑:澄清-整个应用程序仍然是正常的Qt,但绘制与openGL命令"引擎盖下"
我喜欢杂乱和MX.
参见http://www.clutter-project.org/和https://github.com/clutter-project/mx
Qt 5.7及以上版本在QML中提供了QtQuick Controls 2.0,它是在OpenGL中实现的。
http://doc.qt.io/qt-5/qtquickcontrols2-index.html他们的API非常稳定,可以在Android, iOS, macOS, Windows, GNU/Linux等平台上运行。
这是一本关于QML的好书中的一个小hello world。https://qmlbook.github.io/en/ch02/index.html hello world
你用QML编写JavaScript, QMake构建系统将其转换为c++目标代码。
import QtQuick 2.5
Rectangle {
width: 360
height: 360
Text {
anchors.centerIn: parent
text: "Hello World"
}
MouseArea {
anchors.fill: parent
onClicked: {
Qt.quit();
}
}
}
- 在OSX上使用CMake将Adobe的XMP工具包构建为共享库的最简单方法是什么?
- AWS IoT 开发工具包:通过 TCP 端口 443 使用 MQTT
- 使用 AWS C++ 开发工具包分段上传 S3
- 如何使用软化工具包从 OPC UA 服务器异步读取操作回调中的数据值响应中获取 NodeId 详细信息
- 与 AWS 开发工具包的链接问题
- 使用代码在 AWS 开发工具包C++控制台应用程序上设置凭证
- 选择特定版本的 Visual Studio 命令行工具包,并根据特定版本的C++运行时环境编译文件
- 如何使用 AWS C++ 开发工具包在给定的开始和结束日期范围内列出 S3 中的文件
- 错误:必须设置CMake工具才能生成.在工具包选项中配置CMake工具
- 适用于 C++ 的 AWS 开发工具包:对 S3 传输进行完整性检查
- 在 Cloud9 上安装 AWS C++ 开发工具包时出现问题
- 如何为原生UI工具包扩展Ranorex?
- AWS Lambda C++ 开发工具包"Process exited before completing request"
- 无法在Windows 7 64位上安装CUDA工具包9.1.85
- 使用开发工具包将文件上传到 AWS C++
- AWS 开发工具包 C++ 代码不适用于发布版本
- 为什么使用适用于C++的 AWS 开发工具包创建 EC2Client 段错误
- 简单的c++ GUI工具包
- 用户界面-我应该使用哪个工具包为现有的c++代码制作一个易于编辑、外观现代的GUI
- OpenGL中的GUI工具包