| 類別 | 常見 Widget | 說明 |
| 容器 | GtkWindow, GtkBox, GtkTable, GtkNotebook | 包裝其他 Widget,管理佈局 |
| 輸入 | GtkEntry, GtkTextView, GtkSpinButton, GtkComboBox | 文字輸入、數值調整、下拉選單 |
| 顯示 | GtkLabel, GtkImage, GtkProgressBar, GtkTreeView | 文字、圖片、進度條、樹狀列表 |
| 互動 | GtkButton, GtkToggleButton, GtkMenu, GtkToolbar | 按鈕、選單、工具列 |
第一個 PHP-GTK 程式:Hello World
<?php
// hello.php
if (!class_exists('gtk')) {
die("請安裝 PHP-GTK 擴充套件\n");
}
// 建立主視窗
$window = new GtkWindow();
$window->set_title('PHP-GTK Hello World');
$window->connect_simple('destroy', array('gtk', 'main_quit'));
$window->set_border_width(10);
// 建立標籤
$label = new GtkLabel('Hello, PHP-GTK World!');
// 建立按鈕
$button = new GtkButton('Click Me');
$button->connect_simple('clicked', function() {
echo "按鈕被點擊了!\n";
});
// 佈局:垂直盒子容器
$vbox = new GtkVBox();
$vbox->pack_start($label, true, true, 5);
$vbox->pack_start($button, true, true, 5);
$window->add($vbox);
$window->show_all();
// 進入主事件循環
Gtk::main();
?>
執行方式
# Linux/Mac
php hello.php
# Windows (假設 php.exe 在 PATH 中)
php.exe hello.php
實際應用案例
- 資料庫管理工具:如 AgataReport - 跨平台報表設計器
- 多媒體播放器:MP3 播放器、影片播放器
- 系統管理工具:日誌分析、伺服器監控儀表板
- 遊戲原型:如 "phpgtklife" (生命遊戲)、"cow puzzle" 益智遊戲
- IRC/IM 客戶端:即時通訊應用
開發資源與工具
- 文檔:PHP-GTK 2 手冊
- IDE 支援:Eclipse + PHPExtension、VS Code + PHP Extensions
- 打包工具:
php-gtk-packager 可生成獨立執行檔 (含 PHP 運行時)
- 社群:PHP-GTK 郵件列表、GitHub 專案
現狀與未來
注意:PHP-GTK 2 基於 PHP 5 / GTK+ 2,目前維護模式。現代替代方案包括:
- PHP-Desktop:內嵌 Chrome/Edge WebView,用 HTML/CSS/JS 做 UI,PHP 做後端
- Electron + PHP:Node.js 主進程 + PHP 子進程
- Tauri + PHP:Rust 核心 + WebView,更輕量
但對於純 PHP 團隊快速構建內部工具,PHP-GTK 仍具備「全棧 PHP」的獨特優勢。
- 上一篇文章: Apache httpd.conf 核心配置指令詳細中文註釋參考手冊
- 下一篇文章: Apache 核心指令參考手冊:Satisfy、ScoreBoardFile、ServerName 等詳細解析
Copyright ©
程式碼之家 All Rights Reserved