QT开发中文网

Qt中的OpenGl Widget控件实例

下面是一个简单的Qt中的OpenGL Widget控件实例。

在Qt中,可以使用QGLWidget类创建OpenGL Widget控件。下面的代码演示如何在Qt中创建和设置OpenGL Widget控件。

#include <QtGui/QApplication>
#include <QtGui/QVBoxLayout>
#include <QtGui/QGroupBox>
#include <QtOpenGL/QGLWidget>

class GLWidget : public QGLWidget
{
public:
    GLWidget(QWidget *parent = 0) : QGLWidget(parent)
    {
        setFixedSize(200, 200);
    }

protected:
    void initializeGL()
    {
        glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    }

    void paintGL()
    {
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glBegin(GL_TRIANGLES);
        glColor3f(1.0f, 0.0f, 0.0f);
        glVertex3f(-1.0f, -1.0f, 0.0f);
        glColor3f(0.0f, 1.0f, 0.0f);
        glVertex3f(1.0f, -1.0f, 0.0f);
        glColor3f(0.0f, 0.0f, 1.0f);
        glVertex3f(0.0f, 1.0f, 0.0f);
        glEnd();
    }

    void resizeGL(int width, int height)
    {
        glViewport(0, 0, width, height);
    }
};

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QWidget *mainWindow = new QWidget;
    QVBoxLayout *layout = new QVBoxLayout;

    QGroupBox *glGroup = new QGroupBox("OpenGL Widget");
    GLWidget *glWidget = new GLWidget;
    QHBoxLayout *glLayout = new QHBoxLayout(glGroup);
    glLayout->addWidget(glWidget);

    layout->addWidget(glGroup);
    mainWindow->setLayout(layout);
    mainWindow->show();

    return app.exec();
}

在这个例子中,我们创建了一个GLWidget类,它继承自QGLWidget。在initializeGL()函数中,我们设置了背景颜色为黑色。在paintGL()函数中,我们画了一个红色、绿色和蓝色的三角形。在resizeGL()函数中,我们设置了OpenGL视口。

在主函数中,我们创建了一个QWidget作为主窗口。然后我们创建了一个QGroupBox作为OpenGL Widget控件的容器,并向其中添加了我们创建的GLWidget对象。最后,我们将QGroupBox添加到主窗口中,并显示主窗口。

运行程序,可以看到一个简单的OpenGL Widget控件。

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?