GTK__按钮,buttons

[size=large]按钮的类型:[/size]
[list]
[*]普通按钮
[*]开关按钮(是单选、复选的抽象原型)
[*]复选按钮
[*]单选按钮(涉及组的概念,单独出来)
[/list]
[size=large]按钮的创建:[/size]

// 普通按钮
GtkWidget *gtk_button_new();
GtkWidget *gtk_button_new_with_label(const gcahr *label);
GtkWidget *gtk_button_new_with_mnemonic(const gchar *label);

// 开关按钮 Toggle Buttons
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 );

// 复选框
GtkWidget *gtk_check_button_new( void );
GtkWidget *gtk_check_button_new_with_label ( const gchar *label );
GtkWidget *gtk_check_button_new_with_mnemonic ( const gchar *label );


[size=large]按钮的属性:[/size]

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

GSList *gtk_radio_button_get_group( GtkRadioButton *radio_button );
void gtk_toggle_button_set_active( GtkToggleButton *toggle_button, gboolean state );



[size=large]按钮的事件:[/size]

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


[size=large]带图片、文件的按钮[/size]
/* 创建一个新的横向盒,它包含一个图像和一个标签,并返回这个盒。*/

GtkWidget *xpm_label_box( gchar *xpm_filename,
gchar *label_text )
{
GtkWidget *box;
GtkWidget *label;
GtkWidget *image;

/* 为图像和标签创建盒 */
box = gtk_hbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (box), 2);

/* 创建一个图像 */
image = gtk_image_new_from_file (xpm_filename);

/* 为按钮创建一个标签 */
label = gtk_label_new (label_text);

/* 把图像和标签组装到盒子里 */
gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 3);
gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 3);

gtk_widget_show (image);
gtk_widget_show (label);

return box;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值