当前位置:
文档之家› 第13章 gtk+图形界面程序设计
第13章 gtk+图形界面程序设计
– 利用gcc编译: $gcc gtk+helloworld.c –o gtk+helloworld `pkg-
config gtk+-2.0 --cflags --libs`
11/7/2020
基本程序示例
说明 • 输出文件为helloworld • 以命令pkg-config gtk+-2.0 --cf43;安装
1 安装命令: sudo apt-get install gnome-core-devel
11/7/2020
基本程序示例
• 程序运行效果
–组成: • 一个按钮 • 一个窗口
–动作: • 点击按钮,在终端输出一个字符串 • 点击关闭窗口,在终端输出一个字符 串后,退出
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(); }
第13章 GTK+图形界面程序设计
13.1 X Window编程简介 13.2 GTK+程序设计简介 13.3 用GTK+开发图形界面程序
11/7/2020
主要内容
• Gtk+的主要功能 • Gtk+简介 • 利用Gtk+开发图形界面程序
➢基本程序示例 ➢应用容器的程序示例
11/7/2020
13.1 X Window编程简介
• Xlib是建立并显示图形界面的完备的API函数 集合。
11/7/2020
13.1 X Window编程简介
• 使用Xlib编程需要 开发人员进行大量的工作, 影响了开发的效率和质量。因此在 Xlib之上 出现了更高层的开发工具包,GTK+、Qt等。
11/7/2020
13.1 X Window编程简介
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);//关联按钮事件
结果为gcc的额外参数;
–运行: ./helloworld运行
11/7/2020
GTK+ 图形界面实现
• 在GTK+中,图形界面是一种利用C语言实现 的、面向对象的模拟。
• 所有的图形界面元素(窗口、按钮、列表 等)都是通过类型为GtkWidget的变量来使 用,可以将GtkWidget看作所有界面元素的 基类。
9 int main(int argc, char * argv[ ]){
10 GtkWidget *window;
11 GtkWidget *button; 12 gtk_set_locale(); //设置gtk本地信息
13 gtk_init(&argc,&argv);//初始化运行环境
14 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);//创建窗口
11/7/2020
13.3 用GTK+开发图形界面程序
1.基本程序示例
– on_btn_clicked(),按钮事件处理程序 – on_delete(),窗口关闭事件处理程序
helloworld.c代码 1 #include <gtk/gtk.h> 2 void on_btn_clicked(GtkWidget *widget, gpointer data){
22 gtk_container_add (GTK_CONTAINER (window), button); 23 gtk_widget_show_all(window);//显示窗口 24 gtk_main();//启动消息循环
基本程序示例
• 程序的编译运行
– 假设条件: • 源文件保存在当前工作目录中; • 源文件命名为gtk+helloworld.c
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",
• GTK+ 是Linux系统中常用的图形界面开发工 具包之一,来源于Gimp(GUN Image Manipulation Program),是Gimp Tool Kit的 缩写 。
以Gtk+为基础的应用软件
• Gimp图形处理软件 • Glade辅助开发GTK+程序软件 • Gnome图形桌面系统 • Abiword子字处理软件 • Dia图标软件
• X Window与微软的windows相比,区别: ➢ 在windows系统中,图形界面的应用、显示逻辑、
显示实现紧密结合,即应用程序既要解决画什么, 又要解决怎么画的问题。 ➢ 增加编程人员的负担,不利于程序的移植。
11/7/2020
13.1 X Window编程简介
• 开发X Widow应用程序必须在X Window提供 的接口之上进行,即XLib。
11/7/2020
GTK+图形界面程序编写注意事项
• #include <gtk/gtk.h> 必须的头文件 • Gtk+程序的基本框架: 1.初始化运行环境:gtk_set_locale()、
gtk_init(&argc,&argv)。 2. 创建界面元素:GtkWinget* window 、
• Gtk+工具包是Xlib之上更高层的开发工具包,它将 底层的Xlib的API进行封装,提供更高级的接口,达 到降低开发难度,提高开发效率的目的。
X客户端(应用程序)
X客户端(应用程序)
X工具包Gtk+ Qt
X工具包Gtk+ Qt
XLib
XLib
11/7/2020
网络协议
X服务器 设备驱动程序
13.2 GTK+程序设计简介