http://post.baidu.com/f?kz=102395749
assiss
◆C语言函数库简介系列◆1.1GTK+ |
|
<cc></cc>1C与GUI 用C写GUI似乎是一件非常痛苦的事情。比如WIN32SDK,比如XLIB……我初学编程时,为了找一个合适的GUI库--既强大又比较简单,花费了不知多少时间。
初见GTK+,就在我苦苦查找GUI库的时候。但那个时候的GTK+让我难以理解,或者说,那个时候的我还不能理解GTK+,轻而易举地放弃了这个优秀的GUI库。
众里寻她千百度。找不到。我于是认为,和其他人一样认为,用C写GUI是费力不讨好的事情。于是我转向C++,转向JAVA,转向PYTHON。MFC,FLTK,FOX,WXWINDOWS->WXWIDGETS,QT,SWT,SWING,TCL/TK……天知道我试了多少种GUI库。
蓦然回首,那人却在,灯火阑珊处。在寻找的过程中,我慢慢领会到了C语言的真正力量所在。在学习了大量开源库代码之后,我慢慢了解到一个不被常人所了解的世界。就在我眼界渐开的时候,我又遇到了GTK+,这一回,我终于看到了她的美丽,看到了她的魅力。
1.1GUI王国的一朵奇葩,一枝独秀的GTK+ GTK+也许不是最优秀的GUI库,但必然是最好的库之一;作为钟情C语言的人来说,除了GTK+,你再也找不到更好的了。这是宿命,还是无可奈何? 不必感到悲哀,不必再去东挑西选,GTK+绝对对得起“最好”这两个字。来,一起领略GTK+的风采吧。
以下内容,除了废话,有用的部分主要翻译自GTK+FAQ。 什么是GTK+? 要说GTK+,首先得说GUI,即graphicaluserinterface,图形用户界面。GUI的好处不用我多说了,学C/C++的刚开始总是羡慕学VB和DELPHI的,因为他们总是能轻而易举地建立一个GUI程序。其实不用羡慕,等你学到了C/C++的精髓之后,想做一个有用的GUI程序,不比他们慢;相反,由于有了坚实的基础,你还能做得比他们好。 GTK+就是这样一种帮你创建GUI的工具。 它跨平台。 它支撑起一个庞大的桌面系统-GNOME。 它自由,免费,LGPL的授权比GPL更宽松,更适合各种用途。 它被多种语言支持。C++,PYTHON,JAVA(没错),还有很多很多。 它有著名的GLADE,设计GUI不比那些所见即所得的工具烦。 它有大量的WIDGET,很多很多,通常情况下你不需要再写新的。 它的WIDGET可以继承--是的,你没看错,用C实现的继承。就算你需要写新的WIDGET,也是小事一桩,不比C++困难。 它的设计思想是面向对象的。C语言的特性决定了它不可能是真正的面向对象,但你仔细看看GTK+,除了需要你进行一些保护,它和真正的面向对象又有什么大的区别? 它实现了大量有用的函数,在GLIB里。这里有数据结构--你不需要再去写链表,无论是单身的还是双向的;你不需要再羡慕C++的HASH,GLIB也有;这里有线程,这里有IO,……
废话少说,让我们见识一下著名的HELLOWORLDFORGTK+!
1.1.1安装GTK+ LINUX/UNIX的用户就不需要我多说了,只是要注意安装开发版的,并且安装LIBGLADE。我们的HELLOWORLD就是从LIBGLADE开始的。 WINDOWS的用户安装GTK+有些麻烦,首先,98和ME的用户可能只能安装2.4版的,2000以上的可以安装最新版。建议有条件的安装LINUX/UNIX,没条件的也安装2000/XP,不要再用98和ME了。下面我主要介绍一下WINDOWS+MINGW+GTK+的安装方法。 1.1.2下载GLADE/GTK+FORWINDOWS开发版 有热心的网友制作了GTK+FORWINDOWS,当然有很多版本,我推荐安装下面网址的: http://gladewin32.sourceforge.net/modules/news/ 目前上述网址的最新版是2.8.14 给一个直接的下载地址: http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=99 这个版本集中了GLADE/GTK+,并且还有OPENGL的插件,并且集成了开发文档,比较全面。
1.1.3安装 直接运行安装文件,它会提示你找到MSYS并给予相关配置,不用改什么,直接NEXT。 大约74MB,占地80MB。
1.1.4测试 打开MSYS,输入 pkg-config.exe--cflagsgtk+-2.0
你看到了什么?
1.2GTK+的HELLOWORLD! 首先,在c:\projects\下建立文件夹gtk 其次,打开开始->程序->GTK+->GLADE,设计GUI界面。在GLADE的GTK+BASIC面板里点窗口(WINDOW)出现一个新窗口,然后选择标签(LABEL)(就是那个大A字),在窗口上点一下,一个新LABEL出现了。它显示的内容是“label1”,我们要改成“你好,GTK+!”在右边的WIDGETTREE里选中label1,然后在右下角的properties:label1里改变它的Label:你好,GTK+!。然后点菜单Project->保存,保存到c:\projects\gtk\1.glade。 PROJECTDIRECTORY:c:\projects\gtk\1 projectname:1programname:1 projectfile:1.glade
然后,打开你喜欢的编辑器,写入下面代码并保存到c:\projects\gtk\1\1.c 1.c:
#include<gtk/gtk.h> #include<glade/glade.h>
intmain(intargc,char*argv[]){ GladeXML*xml;
gtk_init(&argc,&argv);
xml=glade_xml_new("1.glade",NULL,NULL);
gtk_main();
return0; }
最后,编译运行。打开MSYS,运行下面的命令(注意,下面出现的`不是单引号,而是~号下面的,确保1.EXE和1.GLADE放在同一个目录下): cd/c/projects/gtk/1 gcc1.c-o1`pkg-config--cflags--libsgtk+-2.0libglade-2.0` ./1
看到了什么?一个小小的窗口,里面有一句:你好,GTK+!
课后作业: 尽量折腾1.glade,用GLADE改无数次,然后运行1.EXE看看有什么效果。 |
|
分享到:
相关推荐
GTK+ 参考手册 for GTK+ 2.14.3,最新英文版 GTK+ is a library for creating graphical user interfaces. It works on many UNIX-like platforms, Windows, and on framebuffer devices. GTK+ is released under ...
基于C gtk/gtk+ sqlite3选课系统的开发
第一部分介绍Linux GUI编程架构以及编程基础知识,第二部分介绍Linux 编程常用C语言函数库glibc、构件库Gtk+、Gnome,第三部分介绍Linux下的GUI生成器Glade,第四部分介绍Linux编程调试工具gdb及xxgdb。第五部分包括...
Foundations of GTK+ Development (PDF 英文版) By Andrew Krause ISBN10: 1-59059-793-1 ISBN13: 978-1-59059-793-4 630 pages Apr 2007 (Apress) GTK+ is one of the most influential graphical toolkits for...
第一部分介绍Linux GUI编程架构以及编程基础知识,第二部分介绍Linux 编程常用C语言函数库glibc、构件库Gtk+、Gnome,第三部分介绍Linux下的GUI生成器Glade,第四部分介绍Linux编程调试工具gdb及xxgdb。第五部分包括...
第一部分介绍Linux GUI编程架构以及编程基础知识,第二部分介绍Linux 编程常用C语言函数库glibc、构件库Gtk+、Gnome,第三部分介绍Linux下的GUI生成器Glade,第四部分介绍Linux编程调试工具gdb及xxgdb。第五部分包括...
GTK+ 是一种函数库是用来帮助制作图形交互界面的。整个函数库都是由C语言来编写的。 GTK+函数库通常也叫做 GIMP 工具包。因为,一开始GTK+是用来编写“GIMP” –这个图形处理软件的。 从那以后, GTK+就逐渐成为了...
gtk+开发工具gtk+开发工具gtk+开发工具
第一部分介绍Linux GUI编程架构以及编程基础知识,第二部分介绍Linux 编程常用C语言函数库glibc、构件库Gtk+、Gnome,第三部分介绍Linux下的GUI生成器Glade,第四部分介绍Linux编程调试工具gdb及xxgdb。第五部分包括...
最新的基于GTK+的单词数值计算器基于linux开发,中文显示,见面优化,配带有相关文件,流程图,代码
GTK+(GIMP Toolkit)是一套跨多种平台的图形工具包,按LGPL许可协议发布的。虽然最初是为GIMP写的,但目前已发展为一个功能强大、设计灵活的一个通用图形库。特别是被GNOME选中使得GTK+广为流传,成为Linux下开发图形...
第一部分介绍Linux GUI编程架构以及编程基础知识,第二部分介绍Linux 编程常用C语言函数库glibc、构件库Gtk+、Gnome,第三部分介绍Linux下的GUI生成器Glade,第四部分介绍Linux编程调试工具gdb及xxgdb。第五部分包括...
关于图形库GTK+2.0的一本教材,例子丰富……对刚刚入门的人应该有用
GTK+程序设计中文版 .pdf
gtk+-bundle_2.18.7-20100213_win32 gtk+-bundle_2.18.7-20100213_win32
gtk+-2.24.0.tar.bz2 GTK+源代码 自己需要的
第一部分介绍Linux GUI编程架构以及编程基础知识,第二部分介绍Linux 编程常用C语言函数库glibc、构件库Gtk+、Gnome,第三部分介绍Linux下的GUI生成器Glade,第四部分介绍Linux编程调试工具gdb及xxgdb。第五部分包括...