用 Glade 和 Gcc、GTK+-2.0 库开发图形界面软件 1/80
Glade 编程
学以致用
用 Glade 和 Gcc、GTK+-2.0 库开发图形界面软件 2/80
内容目录
序........................................................................................................................................................ ...................4
Glade 是什么?....................................................................................................................................... ...........7
GTK+是什么?................................................................................................................................. ...................7
壹、打开已有 Glade 工程........................................................................................................... ....................7
一、运行 Galde.............................................................................................................. .........................7
二、打开已有 Glade 工程文件.................................................................................................. ..........7
三、显示相关的窗口......................................................................................................... ....................8
四、激活工程项目............................................................................................................................. .....8
五、激活子构件.................................................................................................................... ..................9
六、工程文件选项设定................................................................................................... ....................13
七、新建一个文件夹........................................................................................................................... .14
八、改变文件选项................................................................................................................ ................15
九、保存工程文件................................................................................................................ ................15
十、代码联编............................................................................................................................ .............15
十一、新建 2 个终端窗口............................................................................................... ....................15
十二、生成编译环境........................................................................................................................ ....15
十三、编译.................................................................................................................... .........................15
十四、运行.................................................................................................................... .........................15
十五、小结.................................................................................................................... .........................15
贰、新建 Glade 工程....................................................................................................................................... 17
一、运行 Galde.............................................................................................................................. ........17
二、新建一个 Glade 工程.................................................................................................... ...............18
三、选择工程类型................................................................................................................. ...............18
四、点[调色板]窗口中的[窗口]按钮................................................................................. ...18
五、出现一个界面窗口 window1....................................................................................... ................18
六、将其它容器或部件放入其中............................................................................ .........................19
七、编辑属性以适合特殊需要................................................................................................ ..........19
八、其余........................................................................................................................................ ..........19
参、将功能代码加入联编代码中........................................................................................ .......................20
一、加入宏定义、头文件和外部变量声明................................................................... ................20
1、加入外部变量声明................................................................................................ ....................20
2、加入宏定义................................................................................................................................. .21
3、加入头文件................................................................................................................................ ..21
二、加入各种功能模块.................................................................................................... ...................21
1、加入退出模块......................................................................................................................... .....21
2、加入文件查找模块................................................................................................. ...................21
用 Glade 和 Gcc、GTK+-2.0 库开发图形界面软件 3/80
3、加入文件名保存模块........................................................................................... ....................22
4、加入树视图控件的显示控制模块............................................................................... ..........22
5、加入文本视图控件的显示控制模块........................................................... .........................24
6、显示图片............................................................................................................... ......................24
7、加入字符串的计数、分解、转换、连接、计算功能............................... ......................24
肆、修改界面布局............................................................................................................................ ..............25
伍、附录.................................................................................................................................................... ........25
1、main.c........................................................................................................................................ ....25
2、interface.c........................................................................................................ ........................26
3、callback.h............................................................................................................ ......................30
4、callback.c............................................................................................................... ...................34
用 Glade 和 Gcc、GTK+-2.0 库开发图形界面软件 4/80
序
这是“如意”软件的开发笔记,把它拿出来是希望通过一个小软件的开发
心得,帮助有心编程的朋友熟悉 Glade 的强大、易用,进而学会使用。
我不是一个编程的专业选手,也不是一个喜欢钻计算机专业牛角尖的主,
但面对已经成熟,蒸蒸日上几臻于完美之境的开源软件集,我不由得不动心,
去热情地拥抱她,也许软件的“开元盛世”已经来临了!
我不是一个自由软件开发人员,但从今天开始也许要算得一个了。面对伸
手就要钱的商业软件圈,一个爱好编程却又缺乏编译器的业余人员是不敢或懒
得问津的,通过一系列的盗版,获得一个不稳定的编程环境,API 等相关资料
残缺不全,这样的环境还有几分创新的冲动呢?
自由软件则不然,免费、高效、稳定、强大、相关资料齐全等都是已经形
成的共识,3G 自由软件套件:Gcc 编译器及 MAKE 工具、GTK+/GNME 图形界面库、
Glade 图形界面构造工具,是已经成熟的编程工具集套件;正如著名的互联网
服务器套件 LAMP:Linux、Apache、MySQL 和 PHP,Phython,Perl 编程语言已闻
名遐迩一般;其他如桌面领域的 Openoffice.org 的文档格式已成为国际标准,
相应办公套件在 Linux 和 MS Windows 应用越来越广泛;firefox 已成为 Linux
发行版的必选浏览器,也已成为 MS Windows 下避免流氓软件、木马软件、病毒
的有效浏览器;GIMP 图像编辑软件也正以它媲美 Photoshop 的强大功能日渐为
大家所熟悉;品质上乘的 XINE、Mplayer、VLA、Xbox 等媒体播放软件日渐流行;
KNOPPIX、Ubuntu 等集合整套办公、媒体、操作系统的启动光盘成为新的计算
机时尚;可定制的 Gentoo Linux 操作系统日渐为计算机技术迷们所追捧等等,
自由软件的风景真是一片大好,说“开元”(元与源本来就相通)盛世已经到
来实在是不为过。
自由软件的流行当然是因为它免费或便宜,但更重要的却是首先因为它们
的稳定、强大,就象本文介绍的 3G 组合——GCC、GTK+、Glade。在自由软件领
域,除了兴趣之外,对你别无要求,你是完全自由的,实际上,连兴趣也不能
算是一种要求。
但即使在这样的自由环境,学会编程也不是一件一蹴而就的事,基于这样
的事实,我开发了一个不用编程、学习计算机语言就能创造程序般功能环境—
—“如意”软件,集浏览器、摘录器、计算器、向导功能于一身,可以让普通
人的思路精确地得到交流,而它的要求只是纯文本的记录和分段、断句数行数
等日常的识字工作,如果你不只对编程感兴趣,可以参阅该软件和同时发行的
手册,使用该软件,相信不会让你失望,如果你觉得好,不妨介绍给你的朋友
--它是自由软件,免费发行,采用 GNU 通用公共许可证 1991.6 第二版(GNU
GENERAL PUBLIC LICENSE Version 2, June 1991)或以后版本许可。欢迎访问
用 Glade 和 Gcc、GTK+-2.0 库开发图形界面软件 5/80
http://www.egesh.com,阅读、下载,与本文 pdf 格式同时发行的还有 xdf 格
式,就是该软件的纯文本向导格式。
闲言少叙,如果是您是程序员,或想成为程序员,那你就开始愉快地阅读
下面的内容吧。
本文将向你介绍 GTK+的图形界面编程,它面向如下对象:
1)如果您是一个 C 程序员,但还不是老手,那么通过本文,可以补充一下
相关的知识;
2)如果您是一个 C 程序老手,但还没有在 Linux 下编过图形界面程序,那
么本文的 Glade 知识会很适合你;
3)如果您已经是 Glade 的使用者,则本文完全从 Glade 编程的思路也许能
供你参考;
4)如果您已经是 Glade 的高手,那么您就来帮我一起将示例的工具软件-
-“如意”软件(mindway)做得更好吧;因为它是 GNU 通用公共许可证
1991.6 第二版(GNU GENERAL PUBLIC LICENSE Version 2, June 1991)
或以后版本授权下的自由软件,或许你本身也会从中受益。
本文介绍的开发环境:完全的 Fedora core 6 Linux(FC6)环境,未使用额
外的工具,gedit 因为个人喜好使用 FC5 下的版本。
它包括了图形界面构造器 Glade 2.12.1,GNU 编译器 gcc4.1.1,GTK 图形界
面库 GTK+-2.6.0
购买 FC6--60 元左右可以得到一套光盘(12 张)和 93 页的安装手册,
建议购买,
它会使你事半功倍。如果你没有购买,那就从网上免费下载这些工具和库,
它们都自由软件基金会(The Free Software Foundation)的项目,
您可以去 http://www.gtk.org 去了解有关 GTK+的知识,下载库接口 API
手册,这很重要。
您可以去 http://glade.pn.org 去了解 Glade 的有关知识。
编程不是闭门造车,您需要一些参考书籍--“如意”软件就是在阅读这
些参考中逐渐编成的,鸣谢下面书籍的相关人员:
http://www.gtk.org 网站有关 GTK+的 API 电子文档
Tim-Philipp Müller 的“GTK+ 2.0 Tree View Tutorial”电子文档
宋国伟编著,GTK+2.0 编程范例,清华大学出版社,2002 年 11 月第 1 版
Peter Wright 著,钟鸣、石永平等译,GTK+/GNOME 程序设计,机械工
业出版社,2002 年 1 月条 1 版
Brian W. Kernighan , Dennis M. Richie 的“C 程序设计语言(第 2 版
新版)”,机械工业出版社,2006 年 7 月第 2 版;
Stephen Prata 的“C Primer Plus(第五版)中文版”,人民邮电出版社,
2005 年 2 月第 1 版
- 1
- 2
前往页