目次
新しいプログラミング言語を学ぶ際に最初に書くプログラムは、 たいてい 'hello world' です。そこで、皆さんのご期待にこたえて、 このマニュアルでも最初のチュートリアルとして 'hello world' をとりあげます!
このチュートリアルの前提条件として、PHP 自身についての概要は知っているものとします。 このチュートリアルでは、PHP-GTK の使用法およびその背景となる概念や技術を扱います。
このチュートリアルでは、単純なウィンドウを作成してそこに "Hello World!" というテキストを表示します。
まずはプログラムのリストをご覧に入れます。それから、 プログラムの各行について説明していきます。 これによって、基本的な PHP-GTK アプリケーションについての概要がつかめるでしょう。
<?php if (!class_exists('gtk')) { die("Please load the php-gtk2 module in your php.ini\r\n"); } $wnd = new GtkWindow(); $wnd->set_title('Hello world'); $wnd->connect_simple('destroy', array('gtk', 'main_quit')); $lblHello = new GtkLabel("Just wanted to say\r\n'Hello world!'"); $wnd->add($lblHello); $wnd->show_all(); Gtk::main(); ?> |
もし Fatal error: Call to undefined function: connect_simple() というエラーが出たら、あなたが使用しているのは PHP-Gtk1 であり、 PHP-Gtk2 ではありません。このマニュアルは PHP-Gtk1 のものではありません。
このコードをテキストエディタにコピーし、 hello.phpw という名前で保存しましょう。 次に、コンソールを開いて php hello.phpw でプログラムを起動します。"Hello world" というタイトルのウィンドウが開き、 "Just wanted to say 'Hello world!'" というテキストが表示されることでしょう。
if (!class_exists('gtk')) { die("Please load the php-gtk2 module in your php.ini\r\n"); } |
PHP-GTK が使用可能であることを確認するため、 gtk クラスが存在するかどうかを調べます。 PHP 4 および PHP-GTK 1 の場合と違い、PHP-GTK モジュールを dl() で読み込もうとしてはいけません。この方法は PHP 5 では非推奨となっており、 新しく作成するコードでは使用してはいけません。 つまり、ここでできるのはメッセージを表示することだけです。 モジュールが使用できないことを知らせた上で、 ユーザ自身にモジュールを有効にしてもらう必要があります。
新しい window ウィジェットを作成する方法は、 単にオブジェクトのインスタンスを作成するだけのことです。 変数 $wnd に、新しいオブジェクトが代入されます。 PHP 4 で PHP-GTK 1 のプログラムを書いたことがある人は、 new の前に & がないことにお気づきになるかもしれません。これは PHP 4 では必須でしたが、 PHP 5 ではもはや使用されません。自動的に参照が作成されます。
タスクバー内でウィンドウを識別しやすくするため、タイトルを設定します。 単にオブジェクトのメソッドをコールするだけです。
ちょっと見慣れないコードが出てきました。これにより、 "destroy" シグナルが 静的メソッド Gtk::main_quit と関連付けられます。これは、ウィンドウが 閉じられた/破壊された 場合に GTK のメインループを終了させるようにします (メインループについてはもう少し後で説明します)。
先ほど、新しいウィジェットを作成しました。 そこにちょっとしたテキストを表示させるようにしましょう。このような場合に最適なのが GtkLabel です。
これで、ウィンドウに対してラベルを直接追加します。
ここまでの段階では、画面には何も表示されません。 ウィンドウを表示するには、show() をコールする必要があります。 これでウィンドウが表示されますが、ラベルは表示されません。ラベルの show() もコールしなければならないのです。 ウィンドウ上にボタンやチェックボックスなどのウィジェットを複数配置している場合、 これでは不便です。show_all() を使用すると、ウィンドウおよびその配下のすべてのウィジェットを表示させます。
全設定が終了したら、ウィンドウを表示したままにしておき、 ユーザの操作に反応させる必要があります。 通常の PHP スクリプトはこの時点で終了してしまいますが、 ここではスクリプトを実行し続けなければならないのです。 そのためには、GTK のメインループを作成する必要があります。 このループがアプリケーションを実行し続け、ユーザのイベントを待ち受けます。 イベントが発生すると、対応するコールバック関数にそれを委譲します。
これで初めての PHP-GTK 2 アプリケーションができあがりました。 おそらく、次はもっと複雑なレイアウトを作成したくなることでしょう。 その基礎を学ぶには、 パッキングのチュートリアル を参照ください。