OpenGL——QTにおけるOpenGL環境の構成

3874 ワード

1.QTのダウンロード
アドレス:http://download.qt.io/official_releases/qt/5.6/5.6.1-1/
ダウンロード対象はqt-opensource-windows-x 86-mingw 492-5.6.1-1.exe
2.インストール
一歩ずつ歩けばいい
3.プロジェクトの作成
OpenGL——配置QT中的OpenGL环境_第1张图片
 
OpenGL——配置QT中的OpenGL环境_第2张图片
OpenGL——配置QT中的OpenGL环境_第3张图片
OpenGL——配置QT中的OpenGL环境_第4张图片
 
OpenGL——配置QT中的OpenGL环境_第5张图片
 
4.プロジェクトでproファイルを構成する
OpenGL——配置QT中的OpenGL环境_第6张图片
 
5.コード
widget.h
#ifndef WIDGET_H
#define WIDGET_H

#include 
#include
#include
#include

namespace Ui {
class Widget;
}

class Widget : public QGLWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
    void initializeGL();
    void resizeGL(int w, int h);
    void paintGL();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

 
widget.cpp
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QGLWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}


void Widget::initializeGL()
{
    //  widget      
    setGeometry(300, 150, 500, 500);
    //       
    glClearColor(0.0, 0.0, 0.0, 0);
}
void Widget::resizeGL(int w, int h)
{
    //    
    glViewport(0,0,(GLsizei)w,(GLsizei)h);
    //    
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(40.0,(GLdouble)w/(GLdouble)h,0.1,10000.0);
    //    
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(0.0,0.0,15.0,0.0,0.0,0.0,0.0,1.0,0.0);
}
void Widget::paintGL()
{
    //  
    glClear(GL_COLOR_BUFFER_BIT);
    //       
    glBegin(GL_TRIANGLES);
    glVertex3f(-2,0,0);
    glVertex3f(2,0,0);
    glVertex3f(0,4,0);
    glEnd();
    glFlush();
}

 
6.効果
OpenGL——配置QT中的OpenGL环境_第7张图片