资源描述:
《linux-Gtk图形界面程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2021年9月17日第12章Gtk+图形界面程序设计2021年9月17日主要内容Gtk+的主要功能Gtk+简介利用Gtk+开发图形界面程序基本程序示例应用容器的程序示例2021年9月17日Gtk+的作用Gtk+工具包在XWindows中的作用是Xlib之上更高层的开发工具包,它们将底层的Xlib的API进行封装,提供更高级的接口,达到降低开发难度,提高开发效率的目的。网络协议X客户端(应用程序)X工具包、Gtk+,QtXLibX客户端(应用程序)X工具包、Gtk+,QtXLibX服务器设备驱动程序2021
2、年9月17日Gtk+简介来源:Gimp(GUNImageManipulationProgram)以Gtk+为基础的应用软件GimpGladeGnomeAbiworddia等Gtk+的主要组成Glib:底层核心库Pango:界面布局和国际化Atk:其它功能2021年9月17日开发图形界面程序基本程序示例on_btn_clicked(),按钮事件处理程序on_delete(),窗口关闭事件处理程序helloworld.c代码片断1部分辅助函数1#include2voidon_btn_cl
3、icked(GtkWidget*widget,gpointerdata){3g_print("HelloWorld!");4}5voidon_delete(GtkWidget*widget,GdkEvent*event,gpointerdata){6g_print("WindowClosed.");7gtk_main_quit();8}2021年9月17日helloworld.c代码片断2——主函数部分9intmain(intargc,char*argv[]){10GtkWidget*window
4、;11GtkWidget*button;12gtk_set_locale();13gtk_init(&argc,&argv);//初始化运行环境14window=gtk_window_new(GTK_WINDOW_TOPLEVEL);//创建窗口15gtk_window_set_title(GTK_WINDOW(window),"HelloWorld!");16gtk_container_set_border_width(GTK_CONTAINER(window),10);17g_signal_conne
5、ct(G_OBJECT(window),"delete_event",18G_CALLBACK(on_delete),NULL);//关联窗口关闭事件19button=gtk_button_new_with_label("HelloWorld");20g_signal_connect(G_OBJECT(button),"clicked",21G_CALLBACK(on_btn_clicked),NULL);//关联按钮事件22gtk_container_add(GTK_CONTAINER(window),
6、button);23gtk_widget_show_all(window);//显示窗口24gtk_main();//启动消息循环25return0;26}2021年9月17日基本程序示例程序运行效果组成:一个按钮一个窗口动作:点击按钮,在终端输出一个字符串点击关闭窗口,在终端输出一个字符串后,退出2021年9月17日基本程序示例程序的编译运行假设条件:源文件保存在当前工作目录中;源文件命名为helloworld.c利用gcc编译:命令:$gcchelloworld.c–ohelloworld`pkg-c
7、onfiggtk+-2.0--cflags--libs`说明输出文件为helloworld以命令pkg-configgtk+-2.0--cflags--libs的运行结果为gcc的额外参数;运行:./helloworld运行2021年9月17日常用事件及处理函数原型常用的gtk+事件及处理函数原型事件源事件名处理函数原型GtkWidgetshowvoiduser_function(GtkWidget*widget,gpointerdata);expose-eventgbooleanuser_functi
8、on(GtkWidget*widget,GdkEventExpose*event,gpointerdata);delete-eventGtkButtonactivatevoiduser_function(GtkButton*widget,gpointerdata);clickedenterGtkComboBoxchangedvoiduser_function(GtkComboBox*widget,gpointerda