CodeZine(コードジン)

特集ページ一覧

PHPでデスクトップアプリケーションを作る

PHP-GTK2による簡易電卓アプリケーションの製作

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/02/26 14:00

 PHPというと、Webアプリケーションを作成するためのサーバーサイド言語として既に有名ですが、PHP-GTK2というエクステンションを利用すると、デスクトップ上で動作するアプリケーションを作成することもできます。本稿では、このPHP-GTK2を使用してデスクトップ用簡易電卓を作成してみます。

目次

はじめに

 PHPというと、Webアプリケーションを作成するためのサーバーサイド言語として既に有名ですが、PHP-GTK2というエクステンションを利用すると、PHPでデスクトップ上で動作するアプリケーションを作成できるようになります。本稿では、このPHP-GTK2を使用してデスクトップ用簡易電卓を作成してみます。

対象読者

 PHPでデスクトップアプリケーションを作ってみたい方

環境構築

 対象OSは、LinuxとWindowsです。

 PHP-GTK2は、PHP-GTKのサイトより無償でダウンロードできます。

 Windowsの場合、「php-gtk-2.xx.xx-win32-nts.zip」というファイルをダウンロードし解凍すると、「php-gtk2」というフォルダができますので、中の設定ファイル「php-cli.ini」をメモ帳など開きます。ファイルの65行目あたりに文字コードを指定している部分があるので、php-gtk.codepage = CP1250php-gtk.codepage = SJIS に変更し、日本語を使えるようにしましょう。

 以上で基本的な設定は終了です。

サンプルプログラム「簡易電卓」

 それではPHP-GTK2を使って、簡易電卓を作成してみましょう。以下にソースを示します。

ファイル名:calc.php
<?php
class Calc{
 private $txt1;
 private $txt2;
 private $txt3;
 private $tbl;
 private $hbox;
 private $wnd;
 private $combo;
 private $calc_btn;

 public function __construct(){
  //数字入力用テキストボックスを初期化
  $this->txt1 = new GtkEntry();
  $this->txt2 = new GtkEntry();
  //解答表示用テキストボックス初期化
  $this->txt3 = new GtkEntry();
  //各テキストボックスの幅を調節
  $this->txt1->set_width_chars(6);
  $this->txt2->set_width_chars(6);
  $this->txt3->set_width_chars(6);

  //演算子選択コンボボックスを初期化
  $this->combo = GtkComboBox::new_text();
  $this->combo->insert_text(0,"+");
  $this->combo->insert_text(1,"-");
  $this->combo->insert_text(2,"×");
  $this->combo->insert_text(3,"÷");
  //"+"が初期表示されるようにする
  $this->combo->set_active(0);
  
  //計算ボタンを初期化
  $this->calc_btn = new GtkButton("=");

  //イベントリスナーを割り当て
  $this->calc_btn->connect_simple("clicked",array($this,"calc_handler"));
  
  //テーブルを初期化 
  $this->tbl = new GtkTable(1, 5);
  //テーブルに各コンポーネントを配置
  $this->tbl->attach($this->txt1   ,0,1,0,1);
  $this->tbl->attach($this->combo   ,1,2,0,1);
  $this->tbl->attach($this->txt2    ,2,3,0,1);
  $this->tbl->attach($this->calc_btn,3,4,0,1);
  $this->tbl->attach($this->txt3    ,4,5,0,1);

  $this->hbox = new GtkHBox();
  $this->hbox->pack_start($this->tbl);
  $this->wnd = new GtkWindow();
  $this->wnd->add($this->hbox);
  $this->wnd->set_title("PHP計算機");
  $this->wnd->show_all();
  Gtk::main();
 }
 public function calc_handler(){
  $num1 = doubleval($this->txt1->get_text());
  $num2 = doubleval($this->txt2->get_text());
  switch($this->combo->get_active()){
   //足し算
   case 0:
    $this->txt3->set_text($num1 + $num2);
    break;
   //引き算
   case 1:
    $this->txt3->set_text($num1 - $num2);
    break;
   //掛け算
   case 2:
    $this->txt3->set_text($num1 * $num2);
    break;
   //割り算
   default:
    $this->txt3->set_text($num1 / $num2);
  }
 }
}
//Calcクラスのインスタンスを生成
$calc = new Calc();

?>

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • tkitamura(ティーキタムラ)

    Java,php,Flex,Flashなどにより、某社FXシステムから個人HPの作成まで幅広く手がけました。 宜しくお願い致します。 &nbsp;

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5