[ C++で開発 ]
QtはX Window System上のGUIツールキットの一つとして有名ですが、非X Window Systemへもポーティングされています。APIはC++言語として提供されています。
Qt開発元のNokia社Qt Software部門のWebサイトにあるQtダウンロードページから、Download Qt libraries 4.5 for Linux/X11を辿って入手します。
2009年3月16日現在の最新版
を入手し、解凍・展開します。
qtwork$ tar xvzf qt-x11-opensource-src-4.5.0.tar.gz :
Qtのソースは、UNIXオープンソースの伝統的なビルド方法configure/makeでビルドしてインストールします。最初にconfigureでサイト固有の設定を実施します。
qtwork$ cd qt-x11-opensource-src-4.5.0 qt-x11-opensource-src-4.5.0$ ./configure -prefix /usr/local/qt/Qt-4.5.0 :
configureで指定可能なオプションのうち主要なものは以下のとおりです。
インストール先ディレクトリを細かく指定するには、以下のオプションを指定します。
~/qtwork/qt-x11-opensource-src-4.5.0$ make :
次にmake installを実施します。
~/qtwork/qt-x11-opensource-src-4.3.3$ make install :
qtのコマンド等を実行するため環境変数PATHを指定します。
~/qtwork$ export PATH=$PATH:/usr/local/qt/Qt-4.3.3/bin
Linux上では、Ecilpse CDTを使って開発するのが便利です。
まずは、Hello Worldプログラムを記述し、その環境でコンパイル・リンクし実行させる手順を確認します。
ディレクトリ構成
HelloQt +--- src | +--- main.cpp
ソースファイル
main.cpp
#include <QApplication> #include <QPushButton> int main(int argc, char* argv[]) { QApplication app(argc, argv); QPushButton hello("Hello world!"); hello.resize(100, 30); hello.show(); return app.exec(); }
qmakeツールを使ってプロジェクトファイル/Makefileを生成します。qmakeは、qmake専用プロジェクトファイル(*.pro)を読み込んで、指定されたビルドツール用の設定ファイルを生成する機能を持っています。また、空のディレクトリでqmake専用プロジェクトファイルの雛形を生成する補助機能を持っています。
まず、上記Hello World!のソースコード「main.cpp」を保存したディレクトリにおいて、qmake専用プロジェクトファイルの雛形を以下のコマンドを実行して生成します。
~/qtwork/HelloQt$ qmake -project
HelloQt.proという名前でqmake専用プロジェクトファイルの雛形が生成されました。ファイル名は、実行したディレクトリ名(HelloQt)に拡張子(.pro)が付与されたものになります。qmake -projectを実行すると、その時点でそのディレクトリおよびサブディレクトリに存在するC++ソースファイル、ヘッダーファイルを検索してプロジェクトファイルの雛形が生成されます。
qmake -projectで生成されたHelloQt.pro
###################################################################### # Automatically generated by qmake (2.01a) ? 11 18 11:16:49 2007 ###################################################################### TEMPLATE = app TARGET = DEPENDPATH += . src INCLUDEPATH += . # Input SOURCES += src/main.cpp
アプリケーションで必要な設定があれば、このqmakeプロジェクトファイルに追記します。
続いて、Makefileをqmakeツールで生成します。
~/qtwork/HelloQt$ qmake ~/qtwork/HelloQt$ ls HelloQt.pro Makefile src
makeでビルドします。
~/qtwork/HelloQt$ make g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/qt/Qt-4.3.3/mkspecs/linux-g++ -I. -I/usr/local/qt/Qt-4. 3.3/include/QtCore -I/usr/local/qt/Qt-4.3.3/include/QtCore -I/usr/local/qt/Qt-4. 3.3/include/QtGui -I/usr/local/qt/Qt-4.3.3/include/QtGui -I/usr/local/qt/Qt-4.3. 3/include -I. -I. -I. -o main.o src/main.cpp g++ -Wl,-rpath,/usr/local/qt/Qt-4.3.3/lib -o HelloQt main.o -L/usr/local/qt/Q t-4.3.3/lib -lQtGui -L/usr/local/qt/Qt-4.3.3/lib -L/usr/X11R6/lib -lpng -lSM -lI CE -lXrender -lXrandr -lXfixes -lXcursor -lfreetype -lfontconfig -lXext -lX11 -l QtCore -lz -lm -lrt -ldl -lpthread ~/qtwork/HelloQt$
※ディレクトリ名にはアプリケーションにちなんだ名前を与えるのがよいようです。または、qmake -projectに-oオプションを追加し生成する雛形ファイル名を指定することもできます。
MOCによるプリプロセスの実行