GTK__按钮,buttons

按钮的类型:
  • 普通按钮
  • 开关按钮(是单选、复选的抽象原型)
  • 复选按钮
  • 单选按钮(涉及组的概念,单独出来)

按钮的创建:
//  普通按钮
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 );


按钮的属性:
//  注意,当你使用 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 );



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


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

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;
}

你可能感兴趣的:(button)