今天又使了使GLADE,发现虽没有QtDesigner那般疯狂,但也不错了.
写一点东西,算是复习以及备份.
glade自3.6以后的版本就支持gtkbuilder格式的布局了[不过目前好像win32版只有3.4.x的,所以还是只能用libglade]
下面先把两种形式的的代码分别罗列一下[至于如何安装和配置,我会在后面略作描述]\
gtkbuilder形式的
gtkbuilder形式的不需要额外的库,所以用起来比较方便,但目前win32版的glade貌似还不支持.
所以下面给出libglade形式的
[注意,上面这两个程序点X是不会退出的,因为没有链接相应的处理函数]
用libglade形式其实有一点还是比较麻烦的就是需要在编译的时候加入libglade库,
对应于编译,
`pkg-config --cflags libglade-2.0`
对应于链接,
`pkg-config --libs libglade-2.0`
上面这两行试用于linux平台.
/////////////////////////////////////////////////////////////
代码罗列完之后,简要说说glade的安装与配置
在linux下,应该说很容易了,大便系的linux,apt-get 下,
红帽系的yum下完事,注意编译时要用pkg-config就是了[如果用libglade的话]
如果在win32下,那确实比较麻烦,
[注,mingw的安装参考别的文章吧,这里不叙述了]
1、gtk+-bundle 包,在Gtk+的网站http://www.gtk.org/的Win32 下载页面;
2、libiconv-1.9.1.bin.woe32.zip,不知道bundle 包为何没集成它;这个也可在gtk.org下载
3、Glade-3 下载,http://gladewin32.sourceforge.net/
4、libglade_2.6.3-1_win32.zip 和libglade-dev_2.6.3-1_win32.zip 包。
网址:http://altruistic.lbl.gov/mirrors/gnome/binaries/win32/libglade/
5、libxml2 下载:http://xmlsoft.org/sources/win32/
6、libxml2-devel 下载:( .\share\man\下两个文件夹里文件未自动解压,不知为何)
http://ring.u-toya ma.ac.jp/archives/pc/gnu-win32/release/libxml2/libxml2-devel/
http://ftp.ntu.ed u.tw/cygwin/release/libxml2/libxml2-devel/
然后都解压到一个文件夹[当然有重名文件夹的,要一个一个文件解压进去],再设置下全局变量,就欧科了!
另外win32下似乎不支持``形式的命令,
所以pkg-config时很是麻烦,当然你可以装msys,不过我还没用熟那玩意儿.
这里举一个方法,
如编译时
先用pkg-config --cflags gtk+-2.0 libglade-2.0 >c:\cflags.txt
这样可以把输出的数据导出来出来,便于复制粘贴到makefile里
我把上述那一堆要下载的装在e:\cpp_ex_libs\gtk目录下了
所以对应cflags和libs分别如下[注意\'/\'符号]
cflags:
-mwindows -export-dynamic -mms-bitfields -IE:/cpp_ex_libs/gtk/include/gtk-2.0 -IE:/cpp_ex_libs/gtk/lib/gtk-2.0/include -IE:/cpp_ex_libs/gtk/include/atk-1.0 -IE:/cpp_ex_libs/gtk/include/cairo -IE:/cpp_ex_libs/gtk/include/pango-1.0 -IE:/cpp_ex_libs/gtk/include/glib-2.0 -IE:/cpp_ex_libs/gtk/lib/glib-2.0/include -IE:/cpp_ex_libs/gtk/include/libpng12 -mms-bitfields -IE:/cpp_ex_libs/gtk/lib/gtk-2.0/include -IE:/cpp_ex_libs/gtk/include/atk-1.0 -IE:/cpp_ex_libs/gtk/include/cairo -IE:/cpp_ex_libs/gtk/include/pango-1.0 -IE:/cpp_ex_libs/gtk/include/glib-2.0 -IE:/cpp_ex_libs/gtk/lib/glib-2.0/include -IE:/cpp_ex_libs/gtk/include/libpng12 -IE:/cpp_ex_libs/gtk/include/libglade-2.0 -IE:/cpp_ex_libs/gtk/include/gtk-2.0 -IE:/cpp_ex_libs/gtk/include/libxml2 -IE:/cpp_ex_libs/gtk/lib/gtk-2.0/include -IE:/cpp_ex_libs/gtk/include/atk-1.0 -IE:/cpp_ex_libs/gtk/include/cairo -IE:/cpp_ex_libs/gtk/include/pango-1.0 -IE:/cpp_ex_libs/gtk/include/glib-2.0 -IE:/cpp_ex_libs/gtk/lib/glib-2.0/include -IE:/cpp_ex_libs/gtk/include/libpng12
libs:
-LE:\cpp_ex_libs\gtk\lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -LE:\cpp_ex_libs\gtk\lib -lglade-2.0 -lgtk-win32-2.0 -lxml2 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl
///下面这行如果用slickedit要填在link项other options下
-export-dynamic -mwindows
注意:-mwindows是为了在win下不显示那个黑框框,而-export-dynamic则是使用glade所需要的选项
...................就到这里吧.