その他

PHPでGUIアプリ – PHP-Qtを使ってみよう

皆さんはGUIアプリケーションを作ろうと思ったことはありますか?
作りたいけどC言語とか覚えるのが面倒だなぁと躊躇されている方もいるかと思います。でも、普段使い慣れたPHPで、実はGUIアプリケーションを作ることもできるんです。
今回はそんなPHPでGUIアプリケーションを作ることができるPHP-Qtをご紹介したいと思います。

PHP-Qtは、QtというツールキットをPHPから使えるようにしたPHP5用のエクステンションです。そしてQtとは、X Window System上で動作するデスクトップ環境であるKDEなどで使われていることで有名なツールキットです。
同様のGUIツールキットとしては、デスクトップ環境であるGNOMEで使われているGTK+が有名ですね。WEB+DB PRESS Vol.42の「PHPでGUIアプリケーションを作ろう」という記事でも紹介されていたので、ご存知の方も多いかと思います。

では、PHP-Qtを使うための準備をしていきます。手元にDebian GNU/Linux etchとCentOS 5のX環境がありましたので、この環境を使います。

まず、PHP-Qtをコンパイルするために必要なパッケージをインストールします。

Debianの場合


# aptitude install php5-dev libqt4-devel cmake

CentOSの場合


# yum install php-devel qt4-devel

CentOSの場合はCMakeのパッケージがありませんので、CMakeのサイトのDownloadのページから最新版をダウンロードして、Installのページの手順に従ってインストールします。


$ wget http://www.cmake.org/files/v2.4/cmake-2.4.8.tar.gz
$ tar xzf cmake-2.4.8.tar.gz
$ cd cmake-2.4.8/
./bootstrap
$ make
# make install

もし途中でCコンパイラがない旨のエラーが出た場合は、gccをインストールしてから再度実行してください。


# yum gcc gcc-c++

さて、これで準備ができましたので、PHP-Qtをコンパイルします。
PHP-QtのサイトのDownloadのページから最新版をダウンロードして、Installation and compilationのページの手順に従ってインストールします。


$ wget http://download.berlios.de/php-qt/php-qt-0.9.tar.gz
$ tar xzf php-qt-0.9.tar.gz
$ cd phpqt/
$ mkdir build
$ cd build/
$ cmake ..
$ make
# make install

なお、CentOSの場合はqmakeが見つからない旨のエラーになりますので、


$ cmake .. -DQT_QMAKE_EXECUTABLE=/usr/lib/qt4/bin/qmake

のようにqmakeの場所を指定して実行します。

無事コンパイルとインストールが終わったら、ld.so.confを編集して、ldconfigを実行します。


include /etc/ld.so.conf.d/*.conf
/usr/local/lib ← 追加


# ldconfig

やっとPHP-Qtを実行する準備が整いましたので、実行してみましょう。
phpqt/examplesディレクトリに電卓のスクリプトが入っていますので、それを実行してみます。


$ php phpqt/examples/calculator/main.php

問題がなければ、PHP-QtのサイトのScreenshotsのページにあるような電卓が表示されるかと思います。

また、phpqt/tutorialsディレクトリにサンプルスクリプトが入っていますので、いろいろと覗いてみます。そうすると、


$app = new QApplication($argc,$argv);
// ここにウィジェットについて記述
$app->exec();

の間にウィジェットについて記述していけばよいことが見て取れますね。
Qtで使用できるウィジェットは、Online Reference Documentationのページに書かれていますので、ここを参考にいろいろと試してみるといいと思われます。

では、皆さんも使い慣れたPHPでGUIアプリケーションを作ってみては如何でしょうか。

前の記事へ

次の記事へ

一覧へ戻る

「その他」カテゴリの最新記事

PAGE TOP