bambooflow Note

OpenGLのはじめ(v4.7対応)

最終更新:

bambooflow

- view
メンバー限定 登録/ログイン

OpenGLのはじめ


  • Qt4.7.3



プロジェクトファイルを作成する(GUIアプリケーション)


新規プロジェクトを作成します。
  • メニューのファイルから、「ファイル/プロジェクトの新規作成」を選択します。
  • プロジェクトから「Qtウィジェット プロジェクト」→「Qt GUI アプリケーション」を選択します。
  • 「選択」をクリックします。


  • プロジェクト名はここでは"hellogl"とします。
  • プロジェクトパス名を適当に設定します。ここでは"qtwork"を作成します。
  • 「次へ」をクリックします。


  • ターゲット設定、そのまま「次へ」をクリックします。


  • クラス情報、そのまま「次へ」をクリックします。


  • プロジェクト管理、そのまま「次へ」をクリックします。



QGLWidgetの追加


次にQGLWdigetを継承したクラスを作成します。
ここではクラス名を"GLWidget"とします。

  • ファイルから「ファイル/プロジェクトの新規作成」
  • ファイルとクラスから「C++」→「C++クラス」を選択
  • 「選択」をクリックします。


  • クラス名に、ここでは"GLWidget"と入力します。
  • 入力したら、「次へ」をクリックします。

#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (gl007.png)

  • プロジェクト管理、そのまま「完了」をクリックします。


すると、次のようにglwidget.hとglwidget.cppが追加されます。


ただし、まだ空のクラスを追加したにすぎないため、ここからキーボードを使ってプログラムを作成します。
glwidget.hおよびglwidget.cppを以下のように記述修正します。


  • glwidget.h

#ifndef GLWIDGET_H
#define GLWIDGET_H
 
#include <QGLWidget>
 
class GLWidget : public QGLWidget
{
    Q_OBJECT
public:
    GLWidget(QWidget *parent = 0);
    ~GLWidget();
 
protected:
    virtual void initializeGL();
    virtual void resizeGL( int w, int h );
    virtual void paintGL();
};
 
#endif // GLWIDGET_H
 


  • glwidget.cpp
#include "glwidget.h"
 
GLWidget::GLWidget(QWidget *parent):
    QGLWidget(parent)
{
}
 
GLWidget::~GLWidget()
{
}
 
void GLWidget::initializeGL()
{
    glClearColor(0.3, 0.3, 0.3, 1.0);
}
 
void GLWidget::resizeGL( int w, int h )
{
    glViewport(0, 0, w, h);
 
    glLoadIdentity();
    glOrtho( -w/200.0, w/200.0, -h/200.0, h/200.0, -1.0, 1.0);
}
 
void GLWidget::paintGL()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
    glColor3d(1.0, 0.0, 0.0);
    glBegin(GL_POLYGON);
    glVertex2d(-0.5, -0.5);
    glVertex2d(0.5, -0.5);
    glVertex2d(0.5, 0.5);
    glVertex2d(-0.5, 0.5);
    glEnd();
    //glFlush();
}
 


次がポイントです。
「クラスの格上げ」という機能を使ってユーザが作成したクラスをプロジェクトに組み込みます。

  • プロジェクト→フォームから"mainwindow.ui"をダブルクリックします。
するとウィンドウの右側にフォームの情報が表示されます。


  • "centralWidget"を右クリックして「クラスの格上げ指定」を選択します。


  • 「格上げされたクラス名」に"GLWidget"と入力します。
  • 入力したら「追加」ボタンをクリックします。
  • 「格上げ」をクリックします。
これでユーザが作成した"GLWidget"が格上げされてプロジェクトに組み込まれました。



最後に、プロジェクトでOpenGLを使うので、
  • プロジェクトの"helllo.pro"を開き、「QT」の変数に"opengl"を追加します。



あとは、コンパイル&ビルドをするだけです。


実行結果


うまく実行できると、以下のような結果となります。



まとめ


QtのバージョンがかわるごとにCreatorの使い方が微妙に変わってくるので、それに合わせて操作を覚えるのが大変です。
ただ、「格上げ」というのは便利なので、ぜひ覚えておきたい機能です。

タグ:

Qt OpenGL
記事メニュー
目安箱バナー