用PHP開發GUI

環境:W2k+php(做為現在的主流開發語言)4.3.1+php(做為現在的主流開發語言)/gtk0.5.2
一個簡單的記事本(隻可以打開文件進行修改)
<?php(做為現在的主流開發語言)
set_time_limit (0);       // 設置運行時間

if (!class_exists (“gtk”))           // 判斷是否有GTK模塊
    if (strtoupper (substr ($_SERVER[“OS”], 0, 3)) == “WIN”)
        dl (“php(做為現在的主流開發語言)_gtk.dll”);
    else
        dl (“php(做為現在的主流開發語言)_gtk.so”);

$window = &new GtkWindow ();              // 建一個窗口
$window->set_uposition (100, 100);        //  窗口出現位置
$window->set_usize ((gdk::screen_width()-200), (gdk::screen_height()-150));  // 窗口大小
$window->set_title (“WINDOWS”);         // 設置窗口標題
$window->connect_object (destroy, array (gtk, main_quit));     // 註冊窗口的事件

$vbox = &new GtkVBox ();           
$hbox = &new GtkHBox ();         
$window->add ($vbox);


$menuBar = &new GtkMenuBar ();               // 創建菜單
$vbox->pack_start ($menuBar, false, false, 0);

$file = &new GtkMenuItem (“File”);
$menuBar->append ($file);

$fileMenu = &new GtkMenu ();
$open = &new GtkMenuItem (“Open”);
$save = &new GtkMenuItem (“Save”);
$line = &new GtkMenuItem ();
$line->set_sensitive (true);
$exit = &new GtkMenuItem (“Exit”);
$fileMenu->append ($open);
$open->connect_object (activate, showFileSelection);        
$fileMenu->append ($save);
$save->connect_object (activate, saveFile);
$fileMenu->append ($line);
$fileMenu->append ($exit);
$exit->connect_object (activate, array (gtk, main_quit));

$file->set_submenu ($fileMenu);

$scroll = &new GtkScrolledWindow ();
$scroll->set_border_width (8);
$scroll->set_policy (GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
$hbox->pack_start ($scroll, true, true, 0);
$vbox->pack_start ($hbox, true, true, 1);

$text = &new GtkText ();
$text->set_editable (true);
$text->set_word_wrap (true);
$scroll->add ($text);

function showFileSelection ()           // 文件選擇函數
{
    $file = &new GtkFileSelection (“File Selection”);
    $ok_button = $file->ok_button;
    $ok_button->connect (clicked, openFile, $file);
    $ok_button->connect_object (clicked, array ($file, destroy));
    $cancel_button = $file->cancel_button;
    $cancel_button->connect_object (clicked, array ($file, destroy));

發佈留言