アプリケーションの実行
このアプリケーションを実行してみましょう。コマンドプロンプトを開き、先ほどダウンロードした際にできたphp-gtk2フォルダに移動します。そして、以下のコマンドを実行して下さい
C:\php-gtk2>php.exe calc.php

※アプリケーションを終了したい場合、アプリケーションの【×】ボタンを押すか、コマンドライン上で[Ctr]+[C]のショートカットキーを実行して下さい。
解説
各コンポーネントをCalcクラスの中で定義しています。
| GtkEntry | テキストボックス。 |
| GtkComboBox | コンボボックス。 |
| GtkButton | ボタン。 |
| GtkTable | テーブル。格子状に子コンポーネントを配置する。 |
| GtkHBox | テーブルを格納するための水平ボックス。 |
| GtkWindow | 水平ボックスを格納するウィンドウ。 |
GtkEntryやGtkComboBox、GtkButtonなどの小さなコンポーネントを、GtkTableというコンテナの中に配置します。このGtkTableを生成する際、new GtkTable(1,5)と、縦の長さ1、横の長さ5のマス目を指定しています。GtkTableへのコンポーネントの配置は、次のようにattach関数を使います。
$this->tbl->attach($this->txt1,0,1,0,1);
次にコンポーネントを配置したGtkTableオブジェクトをGtkHBoxに配置します。GtkHBoxは水平ボックスのコンポーネントです。水平ボックスへの配置には次のようにpack_start関数を使います。
$this->hbox->pack_start($this->tbl);
さらに、このGtkHBoxボックスをadd関数でGtkWindowオブジェクトに配置します。
$this->wnd->add($this->hbox);
GtkWindowのタイトル設定には、set_title関数を使用します。
$this->wnd->set_title("PHP計算機");
また、[=]ボタンを押したとき計算用の関数が呼び出されるようにするには、次のようにします。
$this->calc_btn->connect_simple("clicked",array($this,"calc_handler"))
シグナル「clicked」、つまりクリックが発生したとき「calc_handler」という関数が呼び出されるという意味です。
calc_handler関数の中身を見てみましょう。
$num1 = doubleval($this->txt1->get_text()); $num2 = doubleval($this->txt2->get_text());
txt1、txt2で取得した数字をdoubleval関数によって明示的に数値化し、それぞれ変数$num1、$num2に代入します。
そして、演算子のコンボボックスで選択されている演算子のインデックスをget_active関数により取得します。
$this->combo->get_active()
今回の場合だと、インデックスが、
- 0であれば足し算
- 1であれば引き算
- 2であれば掛け算
- 3であれば割り算
という設定にしました。
こうしてできたCalcクラスのインスタンスを最後に生成してアプリケーションの完成です。
$calc = new Calc();
まとめ
今回はPHP-GTK2を使ってデスクトップ上で動く電卓アプリケーションを作ってみました。PHP-GTKには今回用いたもの以外にも豊富なコンポーネントがあります。
PHPは知っているがデスクトップアプリケーションは作ったことがない、という人もこの機会にPHP-GTK2に挑戦してみてはいかがでしょうか?
新しい世界が広がるかもしれないですよ。
