常用的范围函数@GTK+ 2.0 中文教程连载
2010-12-21 14:36
369 查看
常用的范围函数
范围构件本质上来说都是相当复杂的,不过,像所有“基本类”构件一样,绝大部分复杂性只有当你想彻底了解它时才吸引人。同样,几乎所有它定义的函数和信号都只在用它们写派生构件时才真正用到。然而,在<gtk/gtkrange.h>中还是有一些很有用的函数,它们对所有范围构件都起作用。
设置更新方式
范围构件的“更新方式”定义了用户与构件交互时的它的调整对象的value值如何变化,以及如何引发 "value_changed" 信号给调整对象。更新方式在<gtk/gtkenums.h>
中定义为enum GtkUpdateType
类型,有以下取值:
GTK_UPDATE_CONTINUOUS
这是默认值。"value_changed" 信号是连续引发,例如,每当滑块移动,甚至移动最小数量时都会引发。
GTK_UPDATE_DISCONTINUOUS
只有滑块停止移动,用户释放鼠标键时才引发 "value_changed" 信号。
GTK_UPDATE_DELAYED
当用户释放鼠标键,或者滑块短期停止移动时才引发 "value_changed" 信号。
范围构件的更新方式可以用以下方法设置:用GTK_RANGE(widget)
宏将构件转换,并将它传递给这个函数:
void gtk_range_set_update_policy( GtkRange *range, GtkUpdateType policy); |
获得和设置调整对象
猜得出,用以下函数"快速"取得和设置调整对象:GtkAdjustment* gtk_range_get_adjustment( GtkRange *range ); void gtk_range_set_adjustment( GtkRange *range, GtkAdjustment *adjustment ); |
返回一个指向range
所连接的调整对象的指针。
如果将range
正在使用的调整对象传递给gtk_range_set_adjustment()
函数,什么也不会发生,不管是否改变了其内部的值。如果是将一个新的调整对象传递给它,它会将旧的调整对象(如果存在)解除引用(unreference)(可能会销毁它),将适当的信号连接到新的调整对象,并且调用私有函数gtk_range_adjustment_changed()
,该函数将(或至少假装会...)重新计算滑块的尺寸和/或位置,并在需要时重新绘出该构件。正如在调整对象部分所提到的,如果想重新使用同一个调整对象,当直接修改它的值时,应该引发一个 "changed" 信号给它,像这样:
g_signal_emit_by_name (G_OBJECT (adjustment), "changed"); |
<<< Previous | Home | Next >>> |
比例构件 Scale Widgets | Up | 键盘和鼠标绑定 |
相关文章推荐
- Idle 函数@GTK+ 2.0 中文教程连载
- GLib实用程序和错误处理函数@GTK+ 2.0 中文教程连载
- 深入的学习@GTK+ 2.0 中文教程连载
- 从这里开始@GTK+ 2.0 中文教程连载
- 组装示范程序@GTK+ 2.0 中文教程连载
- 使用套件示例@GTK+ 2.0 中文教程连载 现在我们已经介绍了难的办法,这里介绍怎样用 gtk_item_factory 调用来做。
- 涂鸦板,一个简单的绘图程序@GTK+ 2.0 中文教程连载
- 用表组装@GTK+ 2.0 中文教程连载
- 无文档构件。。。。。。@GTK+ 2.0 中文教程连载
- GLib单向链表@GTK+ 2.0 中文教程连载
- 事件处理@GTK+ 2.0 中文教程连载
- 表组装示例@GTK+ 2.0 中文教程连载
- 设置构件的属性@GTK+ 2.0 中文教程连载
- GLib存储管理@GTK+ 2.0 中文教程连载
- 超时、IO 和 Idle 函数/超时 Timeouts@GTK+ 2.0 中文教程连载
- GLib计时器@GTK+ 2.0 中文教程连载
- 添加XInput支持@GTK+ 2.0 中文教程连载
- GTK+ 2.0 中文教程连载
- 数据类型@GTK+ 2.0 中文教程连载
- 构件概述@GTK+ 2.0 中文教程连载