メモ帳を作ってみよう
QtのGUIプログラムの最も簡単な例として、シンンプルなテキストエディタを作ってみます。
このソースコードはQtのインストールディレクトリ以下の次の場所にあります。
Examples/Qt-5.5/widgets/tutorials/gettingStarted/gsQt/part1
プロジェクトファイルをQtCreatorで開いて実行すると、次のウィンドウが表示されます。
実装
#include <QApplication>
#include <QTextEdit>
int main(int argv, char **args)
{
QApplication app(argv, args);
QTextEdit textEdit;
textEdit.show();
return app.exec();
}
一行づつ見ていきます。
最初の行ではQApplicationとQTextEditのヘッダーファイルをインクルードしています。
すべてのQtクラスは同じ名前のヘッダーファイルを持っています。
6行目ではQApplicationオブジェクトを作成しています。
このオブジェクトはアプリケーションのリソース管理を行うオブジェクトで、QtのGUIアプリケーションに不可欠です。
QApplicationのコンストラクタ引数argvとargsで実行時の引数をQtに渡すことができます。
8行目ではQTextEditオブジェクトを作成しています。
これはGUIの要素で、他にはスクロールバーやラベル、ボタンなどがあります。Qtではこれらの要素をWidgetと呼んでいます。また、ダイアログやメインウィンドウもWidgetと呼びます。これらは他のWidgetのコンテナにもなります。
9行目ではテキストエディター自身をウィンドウとして表示しています。
Widgetは他のWidgetのコンテナとして振る舞えることに加え、自身をウィンドウとして表示することができます。
Widgetを生成しただけでは表示されません。Widgetのshow()関数を実行することで表示することができます。
11行目でQApplicationがイベントループを開始します。
このイベントループはQtアプリケーションを実行中、マウスのクリックや、キーボードの押下などのイベントを処理します。
このメモ帳アプリではテキストエディターへのキー入力を受信して、入力された文字を描画するようなイベントを処理します。