第九章 GTK应用
第九章:GTK应用
目标:
本章使学员掌握Linux操作系统
下GTK编程:
1)了解GTK图形库
2)掌握GTK编程方法
时间:3 学时
教学方法:讲授PPT+
上机操作+实例演示
9.1 什么是GTK
• GTK (GIMP Toolkit) 是一套用于创建图形用户界面的工具包。
• GTK 实质上是一个面向对象的应用程序接口 (API)。尽管完全
用C写成的,但它是基于类和回调函数 (指向函数的指针) 的思
想实现的。
• 它遵循LGPL许可证,所以可以用它来开发开源软件、自由软
件,甚至是封闭源代码的商业软件,而不用花费任何费用来购
买许可证和使用权。
• 当前,GTK已经被成功地应用到了大量的自由软件及商业软件
中,已经取得了很大的成功。
9.1 什么是GTK
GTK主要由几大组件构成:
• Gtk+:GTK的主要组件,包括所有的图形控件及大量实用的
API。
• Glib:包含一些标准函数的替代函数,以及一些处理链表等数
据结构的函数等。这些替代函数被用来增强GTK 的可移植性,
同时提供 libc 的对应函数的增强版本。
• Pango:该组件用来处理国际化文字输出。
9.1 什么是GTK
GTK的优势:
• 它很现代,一直得到积极的开发与维护,围绕它有一个充满活
力的社区。
• 它提供了广泛的选项,用于把工作扩展到尽可能多的人,其中
包括一个针对国际化、本地化和可访问性的完善的框架。
• 它简单易用,对开发人员和用户来说都是这样。
• 它的设计良好、灵活而可扩展。
• 它是自由软件,有一个自由的开放源码许可。
• 它是可移植的,从用户和开发人员的角度都是这样。
9.2 安装GTK
apt-get install gnome-core-devel
apt-get install pkg-config
必须安装的软件包:
•
安装libgtk2.0-dev libglib2.0-dev等GTK图形库
•
编译GTK程序时自动找出头文件及库文件位置的工具
可选的软件包,建议安装:
•
安装GTK文档查看程序
•
安装 gtk/glib的API参考手册及其它帮助文档
apt-get instal glade libglade2-dev
•
安装基于GTK的界面构造程序
apt-get install libglib2.0-doc libgtk2.0-doc
apt-get install devhelp
9.3 从HelloGTK开始
#include
void hello( GtkWidget *widget, gpointer data ){ g_print ("Hello World\n"); }
int main(int argc, char *argv[])
{
//定义回调函数
// GtkWidget 是绝大部分可视组件的的基类
//对程序传入的命令行参数进行标准化处理
GtkWidget *window, *button;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), “HelloGTK!”); //设置窗口标题
button = gtk_button_new_with_lable(“hello”);
gtk_container_add(GTK_CONTAINER(window), button);
g_signal_connect(G_OBJECT(button), “clicked”, G_CALLBACK(hello), NULL);
gtk_widget_show(window);
gtk_widget_show(button);
gtk_main();
return 0;
//为“button”连接“clicked”(单击事件)要调用的回调函数
//显示窗口
//显示按钮
//Gtk程序主循环
}
编译方法:
gcc hellogtk.c -o hellogtk `pkg-config --cflags --libs gtk+-2.0`
# 注意:"`" 不是普通的单引号 "'",而是同"~"在一起的那个符号!
9.4 GTK编程基础
从以下几个方面了解gtk的原理和运行机制:
• glib的数据类型
• Gtk的数据类型
• Gtk的初始化
• Gtk的事件循环机制
• 信号处理和回调函数