OpenGL中的GUI工具包

时间:2011-04-09 16:50:48

标签: c++ qt user-interface opengl toolkit

我想开发一个类似于Pure Data的应用程序(在C ++中),但是有一个很酷的GUI和更好的文档...是的,像Max/MSPReaktor之类的东西,但是自由开放!

为了创建一个吸引人的,反应性的和可移植的界面,我正在考虑使用OpenGL。 在我看来,有Blender GUI之类的东西。

在开始开发我的自定义GUI工具包之前,我用Google搜索了解是否存在可以使用的东西,我发现:

  • Juce:它似乎得到了支持,但我不明白你是否只能在界面中嵌入OpenGL画布,或者可以使用OpenGL渲染所有小部件。
  • nUI:它看起来非常酷且便于携带,但是......它的论坛很荒谬,很难找到教程!
  • ceGUI,FLTK,GLUI:如此平坦和灰色;-)并且仍然没有维护。

你知道其他工具包吗?如您所知,我正在寻找一个可移植的库(使用C ++),快速且受支持。

另一种可能性是从头开始使用SDL或Freeglut我的自定义工具包,在这种情况下可能是最好的解决方案吗?

P.S .: 阅读有关此主题的其他主题我注意到许多开发人员建议使用Qt ... Qt可以依赖OpenGL进行渲染吗?或者它只能 主机OpenGL画布?无论如何,您认为在Qt中可以创建类似的东西(具有良好的性能)

3 个答案:

答案 0 :(得分:1)

实际上没有一个好的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命令'引擎盖'

答案 1 :(得分:1)

答案 2 :(得分:1)

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的好书中的小世界。 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();
        }
    }
}