首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP-GTK 開發桌面 GUI 應用入門與打包指南(歷史技術參考)

     編輯:PHP 相關知識

PHP-GTK 是 PHP 4/5 時代的 GTK+ 綁定擴展,允許用 PHP 編寫跨平台桌面 GUI 程序。雖然已停止維護(最後更新 2008 年),但理解其架構有助於掌握 PHP 非 Web 領域的探索歷史。現代替代方案請見 文末建議。

環境搭建(Windows 2000/XP + PHP 4.3 + PHP-GTK 0.5.2)

  1. 下載 php_gtk.dll 放入 PHP extensions 目錄。
  2. 下載 GTK+ 運行時 DLL(6 個)放入 C:\Windows\System32。
  3. 修改 php.ini 添加 extension=php_gtk.dll。
  4. 或腳本首行動態加載:dl('php_gtk.dll')。

簡易記事本完整代碼

<?php
set_time_limit(0);
if (!class_exists('gtk')) {
    dl(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' ? 'php_gtk.dll' : 'php_gtk.so');
}

$window = new GtkWindow();
$window->set_title('PHP-GTK 記事本');
$window->set_usize(600, 450);
$window->connect_object('destroy', ['gtk', 'main_quit']);

// 菜單欄
$vbox = new GtkVBox();
$menuBar = new GtkMenuBar();
$fileMenu = new GtkMenu();
$fileItem = new GtkMenuItem('文件');
$fileItem->set_submenu($fileMenu);

$openItem = new GtkMenuItem('打開');
$openItem->connect('activate', 'showFileDialog');
$saveItem = new GtkMenuItem('保存');
$saveItem->connect('activate', 'saveFile');
$exitItem = new GtkMenuItem('退出');
$exitItem->connect('activate', ['gtk', 'main_quit']);

$fileMenu->append($openItem);
$fileMenu->append($saveItem);
$fileMenu->append(new GtkSeparatorMenuItem());
$fileMenu->append($exitItem);
$menuBar->append($fileItem);
$vbox->pack_start($menuBar, false, false);

// 文本編輯區
$scrolled = new GtkScrolledWindow();
$scrolled->set_policy(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
$text = new GtkText();
$text->set_editable(true);
$text->set_word_wrap(true);
$scrolled->add($text);
$vbox->pack_start($scrolled, true, true);

$window->add($vbox);
$window->show_all();
gtk::main();

// 回調函數
$filePath = null;
function showFileDialog() {
    global $filePath;
    $dialog = new GtkFileSelection('選擇文件');
    $dialog->ok_button->connect('clicked', function($btn) use ($dialog) {
        $filePath = $dialog->get_filename();
        $dialog->destroy();
        openFile($filePath);
    });
    $dialog->cancel_button->connect('clicked', [$dialog, 'destroy']);
    $dialog->show();
}

function openFile($path) {
    global $text;
    if (is_file($path)) {
        $content = file_get_contents($path);
        $text->set_text($content);
    }
}

function saveFile() {
    global $filePath, $text;
    if ($filePath && is_file($filePath)) {
        file_put_contents($filePath, $text->get_text());
    }
}
?>

打包為 EXE(歷史工具 PHPCompiler)

  1. 安裝 PHPCompiler(官網已失效)。
  2. 選擇腳本文件、輸出 EXE 路徑。
  3. 編譯模式選「No」(GUI 模式)。
  4. 複製 php4ts.dll 及 GTK DLL 到 EXE 同目錄。

缺點:啟動時彈出控制台窗口、依賴大量 DLL、不支持現代 PHP 特性、無法加載額外擴展(需源碼級修改)。

現代替代方案

方案特點學習曲線
PHP + WebView2 / Tauri前端 HTML/JS/Vue/React,後端 PHP 內置服務器 (Swoole/RoadRunner) 或 CLI RPC低(Web 技術棧)
Electron + PHP (子進程)成熟生態,PHP 做後端 API中
PeachPie (PHP on .NET)直接用 WPF/WinForms/MAUI 做 UI,PHP 邏輯編譯為 .NET 程序集中高(需 .NET 基礎)
Python (PyQt/PySide/Tkinter)原生 GUI 生態最豐富,語法與 PHP 相近低

結語:PHP-GTK 完成了歷史使命,新項目請擁抱 Web 技術棧或現代跨平台框架。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved