开关按钮 Toggle Buttons@GTK+ 2.0 中文教程连载

开关按钮 Toggle Buttons

开关按钮由一般按钮派生而来,并且非常相似,只是开关按钮有两个状态,通过点击可以切换。它们可以是被按下的(depressed),当你再点击一下,他们会弹起来。再点击一下,它们又会再弹下去。

开关按钮是复选按钮和单选按钮的基础,所以单选按钮和复选按钮继承了许多开关按钮的函数调用。我会在讲到它们时指出这些来。

创建一个新的开关按钮:

GtkWidget *gtk_toggle_button_new( void );

GtkWidget *gtk_toggle_button_new_with_label( const gchar *label );

GtkWidget *gtk_toggle_button_new_with_mnemonic( const gchar *label );

你可以猜到,创建开关按钮应该和一般按钮构件相同。第一个函数是创建一个空白的开关按钮,后面两个函数创建带标签的开关按钮。其中 _mnemonic() 函数处理标签中的以 '_' 为前缀的助记语法符。

我们是通过读取开关构件 (包括单选和复选按钮) 结构的 active 域,来检测开关按钮的状态。之前要用 GTK_TOGGLE_BUTTON 宏把构件指针转换为开关构件指针。我们关心的各种开关按钮 (开关按钮,复选按钮,和单选按钮构件) 的信号是 "toggled" 信号。为了检测这些按钮的状态,设置一个处理函数以捕获 "toggled" 信号,并且通过读取结构测定它的状态。该回调函数如下:

void toggle_button_callback (GtkWidget *widget, gpointer data)
{
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
{
/* 如果运行到这里,开关按钮是按下的 */

} else {

/* 如果运行到这里,开关按钮是弹起的 */
}
}

设置开关按钮和它的孩子 (即单选和复选按钮) 的状态,用如下函数:

void gtk_toggle_button_set_active( GtkToggleButton *toggle_button,
gboolean is_active );

上面的调用可以用来设置开关按钮,以及它的孩子单选和复选按钮的状态。将你所创建的按钮作为第一个参数传入,以及一个 TRUE 或 FALSE 值作为第二个状态参数来指定它应该是下 (按下) 还是上 (弹起)。默认是上,即 FALSE。

注意,当你使用 gtk_toggle_button_set_active() 函数,并且状态也实际改变了时,它会导致按钮发出 "clicked" 和 "toggled" 信号。

gboolean gtk_toggle_button_get_active	(GtkToggleButton *toggle_button);

返回值是开关按钮的当前状态。


<<< Previous Home Next >>>
按钮构件Up 复选按钮 Check Buttons
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值