资源描述:
《gtk编程——按钮》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、常用构件函数最常用的构件是按钮构件、录入字段构件、列表框构件和复合框构件。所有建立按钮的函数返回指向GtkWidget的指针。GtkWidget指针能够调用对构件进行操作的通用函数。函数gtk_widget_show是通用函数的例子。由于建立的构件是通用的构件,需要将它转换为正确的类型以适合调用更为专用的函数。如:建立按钮函数返回GtkWidget指针,但是专用的按钮子程序要求GtkButton指针。所有在调用专用的按钮函数以前,需要使用GTK_BUTTON宏将通用的GtK_Widget指针转换为GtKButton指针。二、按钮按钮时最简单的构件,因为它们的最常用功能是允许用户点击它们
2、。“点击”事件是一次按下按钮和释放按钮的组合。通常点击按钮导致某些操作的完成,如保存文件或结束对话等。按钮由容器派生而来,所有它们共享容器的许多特性。一个重要的特性是容纳其它构件的能力。按钮构件的正文实际是放在按钮构件内的标号构件。建立按钮可以带标号或不带标号。函数gtk_button_new_with_label建立带标号的按钮。函数gtk_button_new建立不带子构件的按钮。函数返回指向GtkWidget的指针,可以使用GTK_BUTTON宏将它转换为GtkButton。1.名称::gtk_button_newgtk_button_new_with_label功能:创建一个不带标
3、号的按钮(gtk_button_new)创建一个带标号的按钮(gtk_button_new_with_label)头文件:#include函数原形:GtkWidget*gtk_button_new(void);GtkWidget*gtk_button_new_with_label(constgchar*label);参数:label按钮正文返回值:新的按钮按钮构件能够发送若干种信号。按钮信号有:pressed按下按钮released释放按钮clichéd点击按钮,这是“按下”和“释放”操作的组合enter鼠标移动到按钮上leave鼠标离开按钮事件可以使用户的操作引起的
4、,也可以用下面的函数模拟事件的发生。但不经常使用模拟信号发生的函数。pressedgtk_button_pressed(button)releasedgtk_button_released(button)clichédgtk_button_clicked(button)entergtk_button_enter(button)leavegtk_button_leave(button)下面的短信息建立带按钮的窗口。当产生信号时,在控制台上显示每一种按钮信号。#includevoidbutton_event(GtkWidget*,gpointer*);intmain(in
5、targc,char*argv[]){GtkWidget*window;GtkWidget*button;gtk_init(&argc,&argv);/*初始化*/window=gtk_window_new(GTK_WINDOW_TOPLEVEL);/*创建窗体*/gtk_signal_connect(GTK_OBJECT(window),”delete_event”,G_CALLBACK(gtk_main_quit),NULL);/*登记窗体delete_event信号的回调函数*/button=gtk_button_new_with_label(“Button”);/*创建带标号的按钮
6、*/gtk_signal_connect(GTK_OBJECT(button),”pressed”,GTK_SIGNAL_FUNC(button_event),”pressed”);/*登记按钮pressed信号的回调函数*/gtk_signal_connect(GTK_OBJECT(button),”released”,GTK_SIGNAL_FUNC(button_event),”released”);/*登记按钮released信号的回调函数*/gtk_signal_connect(GTK_OBJECT(button),”clicked”,GTK_SIGNAL_FUNC(button_
7、event),”clicked”);/*登记按钮clicked信号的回调函数*/gtk_signal_connect(GTK_OBJECT(button),”enter”,GTK_SIGNAL_FUNC(button_event),”enter”);/*登记按钮enter信号的回调函数*/gtk_signal_connect(GTK_OBJECT(button),”leave”,GTK_SIGNAL_FUNC(butto