首页 > 代码库 > GTK常用控件之按钮( GtkButton )

GTK常用控件之按钮( GtkButton )

按钮在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_set_image(GtkButton *button);l

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[]) 
{ 
	gtk_init(&argc, &argv); 	// 初始化

	GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);    // 创建窗口

	GtkWidget *hbox = gtk_hbox_new(TRUE, 10); 		// 水平布局容器
	gtk_container_add(GTK_CONTAINER(window), hbox); // 把水平布局容器放入窗口

	// 普通按钮
	GtkWidget *normal_button = gtk_button_new_with_label("normal button");
	const char *str = gtk_button_get_label(GTK_BUTTON(normal_button)); // 获取按钮的文本内容
	printf("str === %s\n", str);
	
	gtk_button_set_label(GTK_BUTTON(normal_button), "change");	// 设置按钮的文本内容
	gtk_container_add(GTK_CONTAINER(hbox), normal_button);     // 把按钮放入水平布局容器里

	// 给按钮设置一张图片
	GtkWidget *button = gtk_button_new(); // 先创建空按钮
	GtkWidget *image = gtk_image_new_from_file("1.png"); // 图像控件
	gtk_button_set_image(GTK_BUTTON(button), image); // 给按钮添加图片
	gtk_container_add(GTK_CONTAINER(hbox), button);     // 把按钮放入水平布局容器里
	gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);	// 按钮背景色透明

	// 按钮使能设置(是否变灰),默认为使能TRUE,非使能FALSE
	//gtk_widget_set_sensitive(button, FALSE);
	

	gtk_widget_show_all(window);	// 显示窗口控件

	gtk_main(); 	// 主事件循环

    return 0; 
}

程序运行效果图如下:

技术分享


源代码下载请点此。



GTK常用控件之按钮( GtkButton )