- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 第12章 Gtk+图形界面程序设计 * 主要内容 Gtk+的主要功能 Gtk+简介 利用Gtk+开发图形界面程序 基本程序示例 应用容器的程序示例 * Gtk+的作用 Gtk+工具包在XWindows中的作用 是Xlib之上更高层的开发工具包,它们将底层的Xlib的API进行封装,提供更高级的接口,达到降低开发难度,提高开发效率的目的。 网络协议 X客户端(应用程序) X工具包、Gtk+,Qt XLib X客户端(应用程序) X工具包、Gtk+,Qt XLib X服务器 设备驱动程序 * Gtk+简介 来源: Gimp(GUN Image Manipulation Program) 以Gtk+为基础的应用软件 Gimp Glade Gnome Abiword dia等 Gtk+的主要组成 Glib:底层核心库 Pango:界面布局和国际化 Atk:其它功能 * 开发图形界面程序 基本程序示例 on_btn_clicked(),按钮事件处理程序 on_delete(),窗口关闭事件处理程序 helloworld.c代码片断1部分辅助函数 1 #include gtk/gtk.h 2 void on_btn_clicked(GtkWidget *widget, gpointer data){ 3 g_print(Hello World!\n); 4 } 5 void on_delete(GtkWidget *widget, GdkEvent *event, gpointer data){ 6 g_print(Window Closed.\n); 7 gtk_main_quit(); 8 } * helloworld.c代码片断2——主函数部分 9 int main(int argc, char * argv[ ]){ 10 GtkWidget *window; 11 GtkWidget *button; 12 gtk_set_locale(); 13 gtk_init(argc,argv);//初始化运行环境 14 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);//创建窗口 15 gtk_window_set_title(GTK_WINDOW(window),Hello World!); 16 gtk_container_set_border_width (GTK_CONTAINER (window), 10); 17 g_signal_connect (G_OBJECT (window), delete_event, 18 G_CALLBACK (on_delete), NULL);//关联窗口关闭事件 19 button = gtk_button_new_with_label (Hello World); 20 g_signal_connect (G_OBJECT (button), clicked, 21 G_CALLBACK (on_btn_clicked), NULL);//关联按钮事件 22 gtk_container_add (GTK_CONTAINER (window), button); 23 gtk_widget_show_all(window);//显示窗口 24 gtk_main();//启动消息循环 25 return 0; 26 } * 基本程序示例 程序运行效果 组成: 一个按钮 一个窗口 动作: 点击按钮,在终端输出一个字符串 点击关闭窗口,在终端输出一个字符串后,退出 * 基本程序示例 程序的编译运行 假设条件: 源文件保存在当前工作目录中; 源文件命名为helloworld.c 利用gcc编译: 命令: $gcc helloworld.c –o helloworld `pkg-config gtk+-2.0 --cflags --libs` 说明 输出文件为helloworld 以命令pkg-config gtk+-2.0 --cflags --libs的运行结果为gcc的额外参数; 运行: ./helloworld运行 * 常用事件及处理函数原型 常用的gtk+事件及处理函数原型 事件源 事件名 处理函数原型 GtkWidget show void user_function (GtkWidget *widget,gpointer data); expose-event gboolean user_function(GtkWidget*widget,GdkEventExpose *eve
文档评论(0)