GTK+程序设计中文版

VIP免费
2025-02-27 0 0 2.49MB 143 页 5.9玖币
侵权投诉
GTK+ 简介
关于本初级教程 l
GTK+程序初级教程采用了引导式的方法来教你如何使用 GTK+。本教程所用的编程语言
C语言。并且整个教程中方法已经在 Linux 中测试通过。本教程适用 GTK+的初级兼代中级
水平的程序员。
GTK+
GTK+ 是一种函数库是用来帮助制作图形交互界面的。整个函数库都是由 C
言来编写的。 GTK+函数库通常也叫做 GIMP 工具包。因为,一开始 GTK+是用来编写“GIMP”
这个图形处理软件的。 从那以后 GTK+就逐渐成为了 Linux and BSDUnix 下最受欢迎的
用于图形交互界面GUI设计的工具包之一。时至今日,大多数的 Linux 下的 GUI 软件(有图
形交互界面)都是由 GTK+或者 QT 来编写的。GTK+是一种面向对象式的
API(applicationprogramming interface)Glib GTK+的基础,而这种面向对象系统
正是由“Glib”来提供的。 GObject 也就是这种面向对象的机制可以为 GTK+绑定很多种开发
语言。目前存在的语言有:C++, Python, Perl, Java, C#PHP,等其他高级语言。
GTK+ 和以下函数库存在着依赖关系
Glib
Pango
ATK
GDK
GdkPixbuf
Cairo
Glib 是一种通用的函数库。她提供了各种各样的语言特性,譬如说:各种数据类型,字符串函
数,错误通知,消息队列和线程。 Pango 是一种函数库,用来实现国际化和本地化的功能。
ATK
一种平易近人的工具函数包,她提供了快捷键服务为肢体有缺陷的人使用电脑提供了便
利。 GDK 是一种函数库,她为整个 GTK+图形库系统提供了一些底层的图形实现窗口实
的方法。Linux GDK 是位于 X服务器和 GTK+函数库之间的。在最近的 GTK+发行版
本中,越来越多的功能性函数,都交给Cairo 函数库来处理。 GdkPixbuf 函数库是一种函
数库工具包用于加载图像和维护图像缓存的(pixel buffer)。 Cairo 是一种函数库用于制
作二维图像。从 GTK+2.8 版本以后,Cairo 就正式成为 GTK+系统中的一员了。
Gnome and XFce 面环境系统都是用 GTK+来编程实现的. SWT and wxWidgets 是种
著名的编程框架,也是用 GTK+来编程实现的。最杰出的 GTK+软件的代表是 Firefox (火狐浏
览器)和 Inkscape
编译 GTK+ 应用程序
有一个非常方便的工具--"pkg-config",可以帮助我们编译 GTK+的应用程序。pgk-config
以提供各种安装函数库(譬如 GDK,Pango 等)的位置。简单点说,就是我们如果想使用某种函
数库,Pkg-config 就会为我们提供所需要的 lib include 文件的位置。 pkg-config 是从一
些通常以“.pc”结尾的文件中,得到所需要的信息的。
gcc -o simple simple.c `pkg-config --libs --cflags gtk+-2.0`
上面的编译命令,就是在展示我们如何去编译一个简单的源文件——“simple.c”
$ pkg-config --cflags gtk+-2.0
-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include
-I/usr/include/atk-1.0
-I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/freetype2
-I/usr/include/libpng12
上面列出了 pkg-config 为你自动提供的编译所需要include 文件的信息。
$ pkg-config --libs gtk+-2.0
-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm
-lpangocairo-1.0
-lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr
-lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0
-lgmodule-2.0 -ldl -lglib-2.0
上面列出了 pkg-config 为你自动提供的编译所需要lib 文件的信息。
Sources
gtk.org
gtkforums.com
GTK+ / Gnome application development
第一个 GTK+程序
在这一章节中,我们将开始编写第一GTK+程序。
超级简单的例子
我们要制造一个超级简单GTK+程序。就是显示一个空白的窗口。
#include <gtk/gtk.h>
int main( int argc, char *argv[]){
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(window);
gtk_main();
return 0;
}
这个例子就是为我们显示了一个空白的窗口。
gcc -o simple simple.c `pkg-config --libs --cflags gtk+-2.0`
这就是我们用来编译这个例子的命令。下面我们将对这个简单的程序进行详细的解读。
gtk_init(&argc, &argv);
这就是在初始化整个 GTK+程序,是每一个 GTK+程序必不可少的部分。
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
这里我们首先生成了一个构件—— GtkWindow. 这个窗口构件的种类是
GTK_WINDOW_TOPLEVEL. . Toplevel 窗口拥有一个标题栏和边框他们同意由窗口管
理器进行管理。
gtk_widget_show(window);
在我们生成了一个窗口构件以后,必不可少的是,我们需要用这句语句来显示构件。
gtk_main();
这句代码语句将进入主循环 在这一点上,GTK+程序将安静的等待事件”(event)的发生,
以便做出相应的反应。
Figure: Simple
生成一个窗口
如果我们不安排窗口的摆放位置的话那么窗口管理器将为我们给这个窗口安一个家在下个
例子中,我们将走进窗口
#include <gtk/gtk.h>
int main( int argc, char *argv[]){
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Center");
gtk_window_set_default_size(GTK_WINDOW(window), 230, 150);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_widget_show(window);
g_signal_connect_swapped(G_OBJECT(window), "destroy",
G_CALLBACK(gtk_main_quit), NULL);
gtk_main();
return 0;
}
在我们上面的这个例子,我将深入了解窗口构件(window widget),为窗口构件设置标题和
大小。
gtk_window_set_title(GTK_WINDOW(window), "Center");
gtk_window_set_title() 这个函数就可以window 设置一个标题,如果我们不用这个
函数的话,GTK+将用源文件的名字来作为窗口的标题。
gtk_window_set_default_size(GTK_WINDOW(window), 230, 150);
摘要:

GTK+简介关于本初级教程l本GTK+程序初级教程采用了“引导”式的方法来教你如何使用GTK+。本教程所用的编程语言为C语言。并且整个教程中方法已经在Linux中测试通过。本教程适用GTK+的初级兼代中级水平的程序员。GTK+GTK+是一种函数库是用来帮助制作图形交互界面的。整个函数库都是由C语言来编写的。GTK+函数库通常也叫做GIMP工具包。因为,一开始GTK+是用来编写“GIMP”–这个图形处理软件的。从那以后,GTK+就逐渐成为了LinuxandBSDUnix下最受欢迎的用于图形交互界面(GUI)设计的工具包之一。时至今日,大多数的Linux下的GUI软件(有图形交互界面)都是由GTK...

展开>> 收起<<
GTK+程序设计中文版.pdf

共143页,预览5页

还剩页未读, 继续阅读

声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
分类:计算机 价格:5.9玖币 属性:143 页 大小:2.49MB 格式:PDF 时间:2025-02-27

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 143
客服
关注