我想开发一个应用程序(在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();
}
}
}