下面是一个简单的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控件。