Tutorial 1
実際にQtのプログラムを作ってQtとはどういうものか学びましょう。
やはり、そういう場合何はなくともHello worldですね。
Hello world
まずは、簡単な文字列を表示してみます。こういう場合のサンプルとしてはHello worldという文字列を表示するのが常套なので、それに挑戦してみます。
ソースファイルは
tutorial1.cppです。
上記のファイルをダウンロードし、適当なディレクトリに入れてコマンドラインでそのディレクトリに移った後、以下のコマンドを入力してください。
(ここではtutorial1というディレクトリにファイルがあると仮定します)
cd tutorial1
qmake -project
qmake
make
これでそのディレクトリ内(もしくはDebugやReleaseディレクトリ内)に実行ファイルが出来上がります。それをコマンドラインから実行してみてください。
./tutorial1
もしくは
.\debug\tutorial1
ウインドウが表示され、Hello, Worldの文字が表示されていると思います。
解説
さて、ソースファイルを解説していきましょう。
まずは最初のinclude文から。
1:#include <QApplication>
2:#include <QLabel>
include文では直接クラス名を指定します。ここではQApplicationとQLabelクラスを使用しています。
7: QApplication app(argc, argv);
8: QLabel* l = new QLabel("Hello, World");
ここで使用するクラスオブジェクトを作成しています。QApplicationは直接オブジェクトを作り、QLabelはnewで作成していることに注意してください。
QApplicationクラスはアプリケーション全般を司るクラスです。アプリケーション名や実行ファイルのファイル名などの入手も出来ます。
QLabelは静的な文字列を表示するクラスです。
11: l->show();
QLabelは
QWidgetというクラスを継承しています。このQWidgetクラスは表示するものすべての基底クラスとなっており、もしその表示物のクラスに親のQWidgetが存在しない場合、ウインドウを作ります。親QWidgetが存在する場合、子コントロールとして表示されます。
ここでは親QWidgetを作らず直接表示しているのでQLabelのウインドウを作成することになります。
基本的には表示するものはnewを使用して作るべきです。Qtでは表示されるものが消されるときにオブジェクト自体を消去しようとします。その時にdeleteが使われるのですが、これがウインドウが閉じたときにも呼ばれます。自分でdelete処理を書かなくていい分、自動でやられるという事に気をつけなければいけません。
12: return app.exec();
QApplicationクラスのexec関数はイベントループを実行し、指定された戻り値を戻します。それをmain関数の戻り値とすることでアプリケーションの戻り値とします。
駆け足でしたが、一通りQtのプログラムの流れがわかってもらえたと思います。
最終更新:2008年06月19日 00:29