當你開始學習一門編程語言,通常你的第一個程序都是編寫“hello world”。 所以,為了符合這個通常的習慣,本手冊中的第一個指南也就從“hello world” 指南開始!
我們希望在通篇指南中緊扣 PHP 本身。指南被設計為提供用戶如何使用 PHP-GTK, 以及這其中的思想和技術。在這個指南中我們將創建一個簡單的窗口,并有“Hello World!”的文本在上面。我們將從列出的程序開始逐行解釋,這會提供一個基本的 PHP-GTK 應用的概況。
# 1): 簡單的 Hello World 腳本
~~~
<?php
if(!class_exists('gtk')){
die("php-gtk2 模塊未安裝 \r\n");
}
$wnd=new GtkWindow();
$wnd->set_title('歡迎光臨 Hello world');
$wnd->connect_simple('destroy',array('gtk', 'main_quit'));
$lblHello=new GtkLabel("歡迎使用PHP-GTK!\r\n'Hello world!'");
$wnd->add($lblHello);
$wnd->show_all();
Gtk::main();
?>
~~~
復制代碼到文本編輯器中并保存為 hello.gtk,編碼請設置為utf-8,否則中文會亂碼,你會發現 .gtk 的文件是可以雙擊的。 然后雙擊 hello.gtk。 一個標題為“歡迎光臨 Hello world”的窗口應當顯示出來, 除了文本“歡迎使用PHP-GTK! 'Hello world!'”上面沒有任何內容,如圖。

# 2): 檢查 PHP-GTK 是否可用
~~~
if(!class_exists('gtk')){
die("php-gtk2 模塊未安裝 \r\n");
}
~~~
這里通過檢查類 gtk 是否存在來確定 PHP-GTK 是否可用。 我們能做的就是輸出一個消息,告訴用戶模塊不可用并且需要進一步設置可用。
# 3): 創建窗口
~~~
$wnd=new GtkWindow();
~~~
建新窗口元件對象就像創建新對象一樣簡單: 賦值新的對象到變量 $wnd。
# 4): 設置窗口標題
~~~
$wnd->set_title('歡迎光臨 Hello world');
~~~
為了讓窗口在任務欄中便于識別,我們設置窗口標題:僅僅是調用了對象的方法。
# 5): 設置窗口標題
~~~
$wnd->connect_simple('destroy', array('gtk', 'main_quit'));
~~~
這是代碼中第一處有趣的部分:"destroy" 信號連接到靜態方法 Gtk::main_quit。 它簡單的告訴 GTK 當窗口關閉或銷毀時退出主循環。(關于主循環將在下面的部分解釋)
# 6): 創建一個用于顯示文本的標簽
~~~
$lblHello=new GtkLabel("歡迎使用PHP-GTK!\r\n'Hello world!'");
~~~
像之前一樣,我們創建了一個新的元件。這次我們希望顯示一小段文字,而 GtkLabel 非常適合這個任務。
# 7): 在窗口上添加標
~~~
$wnd->add($lblHello);
~~~
現在我們告訴窗口,標簽將會添加在上面。
# 8): 顯示窗口
~~~
$wnd->show_all();
~~~
到現在為止,你的屏幕上還什么都沒有。為了顯示窗口,你需要調用 show() 。這可以顯示窗口,但不包含標簽—— 我們不得不對標簽也調用 show() 。 如果你在窗口上有多個元件如按鈕、選擇框或者其他這是很不方便的: show_all() 會幫助顯示窗口以及所有的子元件。
# 9): 開始主循環
~~~
Gtk::main();
~~~
在所有都設置好了以后,我們需要確保窗口保持開啟并相應用戶交互。 一個普通的 PHP 腳本會中指并退出,但是我們希望它繼續執行:為了這個目的, GTK 主循環被調用。用于程序保持運行并等待用戶事件。 如果事件發生,它將其委派到相應的回調函數中去
# 進一步閱讀
現在你已經創建了你的第一個 PHP-GTK 2 應用,你可能希望創建更加復雜的布局。 閱讀 PHP-GTK 2.0參考指南 了解基礎的方法。
> 注意:上面的文章來自于PHP-GTK 2英文手冊,我們這里做了一點修改和翻譯。
- 前言
- 安裝打包發行
- 安裝方法
- 打包 exe
- 不用設置環境變量打包
- 發布 helloworld 軟件
- 調試以及替換圖標
- Helloworld 分析
- PHP-GTK Hello world 高級程序
- PHP-GTK Hello Glade
- 加載 glade 文件
- 加載 .glade 文件的一部分
- GTK、Pango 和支持庫
- PHP-GTK布局排版
- 盒子 GtkHBox 和 GtkVBox
- 使用 GtkTable 實現表格狀布局
- 固定布局
- PHP-GTK面向對象編程
- 更加復雜的例子
- PHP-GTK 面向對象概述
- PHP-GTK 信號句柄
- 信號
- 回調和信號句柄
- 連接信號和信號句柄
- 事件
- 總結
- GtkTreeView 教程(基礎)
- 模型: GtkTreeModel 和 GtkTreeStore
- 視圖: GtkTreeView, GtkTreeViewColumn, GtkCellRenderer
- PHP-GTK全貌
- 類繼承關系
- PHP-GTK 2 中鍵的符號化名稱
- PHP-GTK 類列表
- PHP-GTK 函數和方法
- PHP-GTK 字段和屬性
- PHP-GTK 信號
- PHP-GTK 枚舉和標志值
- PHP-GTK頂層
- GtkWindow頂層
- GtkDialog頂層
- GtkAboutDialog頂層
- GtkColorSelectionDialog頂層
- GtkFileChooserDialog頂層
- GtkFontSelectionDialog頂層
- GtkInputDialog頂層
- GtkMessageDialog頂層
- GtkRecentChooserDialog頂層
- GtkAssistant頂層
- PHP-GTK容器
- GtkHBox容器
- GtkVBox容器
- GtkTable容器
- GtkNotebook容器
- GtkFrame容器
- GtkAspectFrame容器
- GtkMenuBar容器
- GtkToolbar容器
- GtkHPaned容器
- GtkVPaned容器
- GtkHButtonBox容器
- GtkVButtonBox容器
- GtkLayout容器
- GtkFixed容器
- GtkEventBox容器
- GtkExpander容器
- GtkViewport容器
- GtkScrolledWindow容器
- GtkAlignment容器
- PHP-GTK控制和顯示
- GtkButton按鈕
- GtkToggleButton雙態按鈕
- GtkCheckButton復選按鈕
- GtkSpinButton Spin按鈕
- GtkRadioButton單選按鈕
- GtkFileChooserButton文件選擇按鈕
- GtkColorButton顏色按鈕
- GtkFontButton字體按鈕
- GtkLinkButton銜接按鈕
- GtkImage圖像
- GtkLabel標簽
- GtkAccelLabel快捷鍵列表
- GtkEntry文本條目
- GtkTextView文本視圖
- GtkHScale水平比例
- GtkVScale垂直比例
- GtkHScrollbar水平滾動條
- GtkVScrollbar垂直滾動條
- GtkComboBox組合框
- GtkComboBoxEntry組合框條目
- GtkProgressBar進度條
- GtkTreeView樹視圖
- GtkIconView圖標視圖
- GtkHandleBox可移動的框
- GtkStatusbar狀態欄
- GtkCalendar日歷
- GtkMenu彈出式菜單
- GtkHSeparator水平分割線
- GtkVSeparator垂直分割線
- GtkArrow箭頭
- GtkDrawingArea繪圖區域
- GtkRecentChooserWidget最近選擇器
- GtkFileChooserWidget文件選擇元件
- Gtk+ 過時元件
- APP開發基礎
- 元件和對象
- 父元件和子元件
- APP開發事件和信號
- 事件和信號
- 監聽新的事件
- APP開發啟動并運行
- 窗口和其它頂級元件
- 窗口的位置和尺寸
- 模態窗口
- 窗口標題
- Gtk循環
- PHP-GTK總結