Qtでウインドウを作る
QTライブラリでウインドウを作るのに必要最低限のことをまとめました。
ウインドウの構造
ウインドウを作るにはQMainWindowクラスを使います。このクラスはQWidgetクラスも継承しているのでそのクラスのメンバ関数も利用可です。
QMainWindowは下の図のような構造をしています。
各領域にはそれぞれの名前がついていて次のような意味を持っています。
- MenuBar
メニューバーを設置する領域
- StatusBar
ステータスバーを設置する領域
- ToolBar
メニューバーなどを設置する領域
- DockWidget
元のウインドウの中に設置される補助的なウインドウのこと
- CenterWidget
いろいろなGUI部品を設置できる領域
このように一部のGUI(メニュバーなど)は表示する領域は決まっており、ボタンなどのその他の部品もCenterWidgetという中央の領域に設置することになっています。
それでは実際にソースを書いて、ウインドウを作ってみましょう。
ウインドウの例
初めにウインドウを作るために必要なQMainWindowクラスを継承したMainWindowクラスを定義します。
そのために以下のファイルのようなMainWindow.cppとそのヘッダファイルのMainWindow_H.hを作成します。
MainWindow_H.h
#ifndef MAIN_WINDOW_H #define MAIN_WINDOW_H #include <QtGui> class MainWindow : public QMainWindow { public: MainWindow(); }; #endif
MainWindow.cpp
#include "MainWindow_H.h"
MainWindow::MainWindow()
{
}
MainWindow_H.hでは重複してヘッダファイルをインクルードしないようにインクルードガードしています。
では次にMainWindowクラスをmain関数のあるファイル(main.cpp)から呼び出してウインドウを作成します。
main.cpp
#include "MainWindow_H.h" int main(int argc, char** argv) { QApplication app(argc, argv); MainWindow *mainWin = new MainWindow(); mainWin->setGeometry(0, 10, 200, 300); //初期座標と大きさを設定 mainWin->setWindowTitle("window"); //ウインドウのタイトル mainWin->show(); return app.exec(); }
ここでMainWindowのオブジェクトを作ってウインドウの設定(位置や大きさやタイトル)を行います。
show関数が呼ばれると実際にウインドウが表示されます。
これをビルドして実行してみると...
200x300の大きさのウインドウが表示されました!
以上が簡単なウインドウの作り方です。お疲れ様でした。