按鈕在GUI裡應用最為廣泛,我們幾乎能在所有的界面中看到按鈕。
空按鈕的建立(按鈕上沒有任何内容):
GtkWidget *gtk_button_new(void);
傳回值:按鈕指針
建立帶文本内容的按鈕:
GtkWidget *gtk_button_new_with_label (const gchar *label);
label:文本内容
傳回值:按鈕指針
設定按鈕的文本内容:
void gtk_button_set_label(GtkButton *button,
const gchar *label);
button:操作的按鈕
label:要設定的文本内容
擷取按鈕的文本内容:
const gchar *gtk_button_get_label(GtkButton *button);
button:操作的按鈕
傳回值:擷取到的文本内容
控件使能設定:
void gtk_widget_set_sensitive(
GtkWidget *widget, gboolean sensitive);
widget:要操作的控件
sensitive:FALSE變灰,不允許相應響應;TRUE,正常響應
給按鈕設定一張圖檔:
void gtk_button_set_image(GtkButton *button,
GtkWidget *image);
button:按鈕
image:圖檔控件
擷取按鈕上的圖檔:
GtkWidget *gtk_button_get_image(GtkButton *button);
button:按鈕
傳回值:圖檔控件
設定按鈕透明背景色:
void gtk_button_set_relief(GtkButton *button,
GtkReliefStyle newstyle);
button:按鈕
newstyle: 枚舉變量,GTK_RELIEF_NONE為透明
例子代碼如下:
#include <gtk/gtk.h>
int main(int argc,char *argv[])
{
//1.gtk環境初始化
gtk_init(&argc, &argv);
//2.建立一個視窗
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
//3.建立一個水準容器
GtkWidget *hbox = gtk_hbox_new(TRUE,10);
gtk_container_add(GTK_CONTAINER(window), hbox);
//4.建立一個button1
GtkWidget *button1 = gtk_button_new_with_label("button1");
gtk_container_add(GTK_CONTAINER(hbox), button1);
//5.擷取button1的内容
const char *str = gtk_button_get_label(GTK_BUTTON(button1));
printf("str=%s\n", str);
//6.給button1設定新内容
gtk_button_set_label(GTK_BUTTON(button1), "change");
//7.建立一個button2
GtkWidget *button2 = gtk_button_new();
gtk_container_add(GTK_CONTAINER(hbox), button2);
//8.給button2設定一張圖檔
//8.1擷取一個圖檔控件
GtkWidget *image = gtk_image_new_from_file("./img/1.jpg");
//8.2給button2添加圖檔
gtk_button_set_image(GTK_BUTTON(button2), image);
//8.3将背景設為透明
gtk_button_set_relief(GTK_BUTTON(button2), GTK_RELIEF_NONE);
//9.顯示所有視窗
gtk_widget_show_all(window);
//10.主事件循環
gtk_main();
return 0;
}
運作結果:
源碼下載下傳:http://download.csdn.net/download/lianghe_work/8940977
轉自: