这篇教程会解决有关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总结