這篇教程會解決有關PHP-GTK 2信號連接的問題,這是非常有趣和重要的,因為這會讓你的應用程序變得可以“點擊”。
你可能會注意到在每個PHP-GTK 2的程序后面都有一個聲明Gtk::main();這意味著主循環開啟堵塞,并且等待操作。一般來說,你不僅僅是創建和顯示窗口,然后退出。主循環可以等待一些指令和讓你的應用程序一直運行。當你真的需要退出應用程序的時候,你可以通過如下的聲明main_quit();來退出主循環。
為了使你更好地使用PHP-GTK 2信號連接相關技術,你有必要深入理解下面的幾個概念定義,這是十分有用的:
* 方法Action: 當前發生的一些事。比如說“點擊按鈕”就是一個動作。
* 信號Signal: 當一個事件發生了,應用程序可以通過信號知道什么動作已經發生。
* 回調Callback: 被其它代碼調用的一個函數或者方法。
* 信號句柄Signal Handler: 一個請求正在響應的信號,這里會連接上信號。
* 事件Events: 一個監視系統底層的環境變化的連續的驅動流。它們的級別非常的低,這意味著一個非常細小的環境改變就是可以算作一個事件。當一個動作被執行,那么相應的事件將會被觸發。比如,“點擊按鈕”將會觸發onClickButton。這跟Javascript中的onclick是一樣的。
信號連接的基本構成為連接信號到信號句柄,當然也包括信號句柄本身。它的基本工作是當一個動作發生時,引起PHP-GTK 2連接信號。另一個值得注意的是信號不會保證信號的回調函數或者方法被定義了。比如說,一個信號綁定了一個函數,那么信號并不能保證這個函數被定義了,只有當這個信號的動作被觸發了才會要求該方法被定義,否則會拋出錯誤。你可以定義信號,PHP-GTK 2內部會一直執行它。
一個內部定義的例子,比如我們為一個進度條GtkProgressBar使用 GtkAdjustment 的“value-changed”事件。一些信號有用一個內置的默認句柄,它會一直執行而不管你是否定義信號句柄。
大多數時候,如果你想讓你定義的信號發生,這個時候你需要為它創建一個信號句柄。
- 前言
- 安裝打包發行
- 安裝方法
- 打包 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總結