Glade/GTK2 for Windows with PHP5 快速安裝指南

edited 十月 2013 in 進階PHP討論
本文將指引讀者,如何在 Windows 平台上快速安裝 GTK2/Glade 暨 PHP 的開發環境。
全文連結: Glade/GTK2 for Windows with PHP5 and Ruby 快速安裝指南

在泛Unix環境下,我們通常使用 GTK+ 開發圖形化使用介面(GUI)的應用程式。GTK+ a multi-platform toolkit for creating graphical user interfaces. 許多動態語言,如 Perl, Python, Ruby, PHP 等等,皆可利用 GTK+ 開發圖形化使用介面程式。由於上述動態語言之軟體開發環境與 GTK+ 皆具有跨平台的特性,因此利用它們所設計出的應用程式,通常可運作於多種作業平台之上,包括 Win32 (Windows 2k/XP) 平台。

另一方面,隨著 Web application 演進,我們也開始關注以中介性標籤語言(markup language)進行圖形化介面的視覺設計工作之可行性 (Markup language 對應用軟體設計工作的影嚮)。正好, GTK+ 就有 Glade 這麼一套視覺化使用者介面設計工具。 Glade is a User Interface Designer for GTK+ and GNOME. 它可以將使用者介面的設計成果以 XML 儲存,而應用程式可利用 GladeXML 函數庫載入使用介面。透過 GladeXML ,程序員便不需使用程式語言進行使用者介面的設計工作。
安裝 GTK2/Glade

首先拜訪 Glade 網站,大略了解 Glade 相關資訊。網站上也提供了 Glade 的線上 API 與使用者手冊。但 Glade 網站中並未提供 Windows 版本的軟體安裝套件。故請至 Glade for Windows 取得 Windows 版本的 GTK2/Glade 軟體安裝套件。

在本文中,使用 GTK+ 2.10.11 (gtk-dev-2.10.11-win32-1.exe)。安裝後,應該會在桌面上新增一個 Glade 的圖示,並註冊4組環境變數,如下例:

GTK_BASEPATH = C:\GTK\2.0
INCLIDE = %INCLUDE%;C:\GTK\2.0\INCLUDE;(...很多項)
LIB = %LIB%;C:\GTK\2.0\LIB;
PATH = %PATH%;C:\GTK\2.0\BIN;

安裝 PHP-GTK

在這之前,應該先安裝 Windows 版本的 PHP5 開發工具。

PHP-GTK is an extension for the PHP programming language that implements language bindings for GTK+. 請下載 Windows 版本的軟體安裝套件。在本文中,配合 PHP5 的版本,使用 php-gtk-2.0.0 alpha Windows binary for PHP 5.2.* (php-gtk2-alpha-5_2-win32.zip)。Gnope 提供了 Windows 版本的 PHP5 + PHP-GTK 等開發工具的整合安裝套件。然而其中使用的版本較舊,且與官方釋出的 PHP5 Windows 版本相容性較差,故不建議使用此整合安裝套件。

解壓 PHP-GTK2 至一個暫時性目錄,將 php_gtk_libglade2.dll 及 php-gtk2.dll 這兩個檔案複製到 PHP5 的 ext 目錄之中,例如 C:\php5\ext。由於 GTK2 Runtime 已獨立安裝,故不需要安裝 PHP-GTK2 中的 GTK2 Runtime 。

最後參考 PHP-GTK2 中的 php.ini 內容,修改 PHP5 的 php.ini 。加掛 PHP-GTK2 的 extension ,並增加 [PHP-GTK] 的組態區段。

Hello Glade

啟動 Glade RAD 設計工具,設計一個簡單的 Hello Glade 範例。如圖所示:
85883009.png

Glade 會將設計結果儲存為 XML 文件,預設副檔名為 .glade 。上圖之設計結果儲存為 C:\helloglade.glade 。

helloglade.php

以 PHP5 撰寫一個程式,利用 GladeXML 函數庫載入 glade 文件。將之儲存於 C:\helloglade.php 。
<?php
//This method is called when the button is clicked
function onClickButton() {
    echo "button clicked!\r\n";
    Gtk::main_quit();
}

$glade = new GladeXML('helloglade.glade');

//Let glade do all the signal connections we specified in the file
$glade->signal_autoconnect();

//Start the main loop
Gtk::main();
?>

執行:
C:\> php5\php-win.exe helloglade.php

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=2631
Sign In or Register to comment.