‘壹’ 如何在windows平台下配置gtk开发环境
GTK+开发环境搭建
“工欲善其事,必先利其器”首先介绍一下GTK+开发环境的搭建,网上很多所谓的GTK的开发环境的搭建基本都是抄来抄去,也不知道有没有人使用他们介绍的方法搭建并编译成功,很不幸的是我使用他们写的方法没有搭建成功,所以有必要再增加一个原创版本来介绍GTK+开发环境的搭建,这里介绍windows下两种环境搭建的方法,ubuntu的我就不说了,apt-get的功能真是太强大,直接sudo apt-get install gtk+2.0就搞定了,使用gcc编译添加编译条件就没问题了.现在说说windows吧!第一种是使用VS开发环境,我打算基于VS2012来讲解,我的电脑里装的是2012;另一种是使用codeblocks开发工具.
准备步骤一:
首先是gtk+开发包版本的选择,这个非常重要,我在搭建的时候参考了非常多的资料,官方的资料、个人的心得,怎么都没有成功,最后偶然的机会发现是版本的问题。gtk+的官网上windows下的开发包分成32bit和64bit的,
网上我看到的文章说的都是根据自己的系统选择开发包版本,我的系统是windows 8.1 x64 pro版本,足够新了吧!很多软件开发人员喜欢xp系统,但是我认为最新的东西才是适合软件开发人员的,如果我们自己都固步自封,怎么做出好的东西给客户呢,新的东西虽然冒险,但是你可以根据自己项目的特点进行取舍,现在大家不喜欢用新东西的原因无非是出了问题无法很容易的找到解决方案,这个看自己了!我这是自己折腾着玩,没有老板在后面催着,所以我选择最新的系统、最新的开发包。无论是你的系统是32bit还是64bit的,不要根据系统选择开发包,要根据编译器是32bit还是64bit来选择开发包,无论VS2012还是codeblocks默认的编译器都是32bit的,所以选择32bit的开发包即可,由于gtk+是使用gcc编译的或者minGW,使用VS2012的MS编译器有点小问题,但是不影响使用。到www.gtk.org网站上下载gtk All-in-one bundle版本,这个版本打包了所有需要的文件,比较方便,我下载的是gtk+bundle_3.6.4-20130921_win32.zip和gtk+bundle_2.24.10-20120208_win32.zip是目前3.x和2.x最新的版本了。
为什么下载2.x的是给codeblocks准备的,codeblocks不支持直接创建3.x版本的开发环境,但是支持从2.x版本直接创建gtk+工程,
这个稍后再讲。现在开始:
准备步骤二:
将下载的开发包压缩文件解压缩到一个文件夹内,在环境变量的path下将这个文件夹下的bin目录添加进去,
这个目录是我试验64bit时的截图,不用纠结这个。
添加完成之后,你们可以试着运行bin目录下的gtk3-demo.exe,如果配置没有错误将会出现GTK+ Code Demos的窗口,这就说明你的配置是没有错误的。
准备工作完毕,现在可以开始了。
VS2012搭建GTK+开发环境
1.新建一个空的C++项目,Visual C++—常规—空项目
2.右键项目—选择“属性”,打开属性设置。
3.配置属性—C/C++—常规—附加包含目录—编辑
4.添加新行
将开发包的include文件夹添加进去,
需要添加的目录有:
include,及include下的所有文件夹(atk-1.0,cairo,fontconfig,freetype2,gail-3.0,gdk-pixbuf-2.0,gio-win32-2.0,glib-2.0,jasper,libcroco-0.6,libpng15,librsvg-2.0,libxml2,lzma,pango-1.0,pixman-1),和lib文件夹下的glib-2.0\include、libffi-3.0.12\include(千万不要忘记这两个文件)。很不幸的是这些文件夹只能一个一个的添加,不能批量添加。添加完成之后会像这样。
5.配置属性—链接器—常规—附加库目录—编辑,将lib目录添加进去
6.配置属性—链接器—输入—附加依赖项—编辑,将lib文件夹下则*.lib文件全部添加进去,我的lib目录下有:
atk-1.0.lib
cairo.lib
fontconfig.lib
gailutil.lib
gdk_pixbuf-2.0.lib
gdk-win32-3.0.lib
gio-2.0.lib
glib-2.0.lib
gmole-2.0.lib
gobject-2.0.lib
gthread-2.0.lib
gtk-win32-3.0.lib
pango-1.0.lib
pangocairo-1.0.lib
pangoft2-1.0.lib
pangowin32-1.0.lib
添加完成之后像这样:
每行回车,后面没有“;”
7.新建一个main.cpp文件,在文件中输入
复制代码
代码如下:
#include <stdlib.h>
#include <gtk/gtk.h></p> <p>static void helloWorld (GtkWidget *wid, GtkWidget *win)
{
GtkWidget *dialog = NULL;</p> <p> dialog = gtk_message_dialog_new (GTK_WINDOW (win), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "Hello World!");
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER);
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
}</p> <p>int main (int argc, char *argv[])
{
GtkWidget *button = NULL;
GtkWidget *win = NULL;
GtkWidget *vbox = NULL;</p> <p> /* Initialize GTK+ */
g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, (GLogFunc) gtk_false, NULL);
gtk_init (&argc, &argv);
g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, NULL);</p> <p> /* Create the main window */
win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width (GTK_CONTAINER (win), 8);
gtk_window_set_title (GTK_WINDOW (win), "Hello World");
gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER);
gtk_widget_realize (win);
g_signal_connect (win, "destroy", gtk_main_quit, NULL);</p> <p> /* Create a vertical box with buttons */
vbox = gtk_vbox_new (TRUE, 6);
gtk_container_add (GTK_CONTAINER (win), vbox);</p> <p> button = gtk_button_new_from_stock (GTK_STOCK_DIALOG_INFO);
g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (helloWorld), (gpointer) win);
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);</p> <p> button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
g_signal_connect (button, "clicked", gtk_main_quit, NULL);
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);</p> <p> /* Enter the main loop */
gtk_widget_show_all (win);
gtk_main ();
return 0;
}
然后运行,得到:
到此一个可以使用的VS的GTK+开发环境搭建完毕。这样的步骤本人一步步试验得来,应该没有错误。可放心使用,哈!
codeblocks下搭建GTK+开发环境
我的codeblocks是12.11版本,是目前最新的codeblocks版本,如果使用2.x版本的GTK+那么建立一个GTK+工程很容易。
1.选择GTK+ progect
2.next—填写工程名字
可以随便填写
3.选择开发包的直接根目录
如果出现上面的提示证明你使用的是3.x的开发包。出现上面错误是因为codeblocks的问题,你只需要重新指定一个指向2.x开发包的目录即可。
选择“next”,并点击“finsh”,至此一个新的GTK+工程就完成了。
如果你原来添加到环境变量path下的目录要更改成现在这个新目录了,否则会有错误提示。
‘贰’ firefox 45 使用 gtk 3 有什么意义
总的来说,整合GTK3主要的目的在于,整合GTK3将带来更丰富的主题支持,以HiDPI分辨率绘制小部件,更少依赖X11,以及更好地支持输入设备。
此外,值得一提的是,这个支持是跨平台的。
‘叁’ GTK3 GTK4差别大吗
GNOME开发者在多伦多举办的GTK会议上讨论了新的Gtk发布方案,针对Gtk 3.x系列中的问题,
开发者提议加快大版本的发布速度:每两年发布一个大版本如 Gtk 4、Gtk 5和Gtk 6,每6个月发布一个与旧版本不兼容的小版本,如Gtk 4.2、Gtk 4.4和Gtk 4.6。这项计划意味着Gtk 4.0不是我们将称之为Gtk 4的最终稳定API。 新的大版本能与旧的版本并行安装,如Gtk 4 和Gtk 3能安装在一个系统中,但不兼容的小版本不能,它们使用了相同的pkg-config名字和头文件目录。每一个连续小版本的API将逐渐成熟稳定,也就是 说Gtk 4.6发布时API将最终稳定下来,Gtk 4.6可以称之为 Gtk 4了。使用Gtk的开发者可以选择跟随稳定的大版本而不是小版本
‘肆’ startos 6.0系统好用吗
最新的StartOS6.0测试版已经发布了,经过一番尝试使用,发现StartOS6.0有许多令人振奋新特性,大家来看看吧:
或你也可以发现StartOS6的新特性!
YPK包安装时自动处理依赖
以前打包YPK包时在配置文件里填写依赖,发布给大家下载后,还要自己在软件中心搜索安装软件依赖才能安装第三方的YPK包,这样对于不熟悉的YPK包管理的人非常麻烦。现在,StartOS6的ypkg2已经升级,支持自动安装软件依赖,打包YPK时在配置文件里填写依赖,只要用户配置好软件中心的软件源,能够正常安装软件、并且联网的情况下,双击第三方YPK包,可以自动安装软件包依赖,真正实现一个YPK包安装完所有软件。
YPK包管理不再拆分DEV包(开发包)
以前编译一个软件,要安装许多dev包,找来找去实在很麻烦。现在YPK包管理已经不再拆分DEV包,编译极其方便。比如现在要编译gtk的程序,以前编译要在软件中心搜索安装gtk+-dev包;现在gtk包默认已经安装在系统里,dev包也是在系统里的,根本不用安装什么,就可以直接编译。很少有linux发行版能做到合并dev包的,因为他们大多数用的apt-get 、yum包管理。
纯64位系统
StartOS是纯64位系统,高效支持4G以上内存。安装32位库后,可以支持32位程序。
内核使用LZO压缩
LZO的解压缩速度非常快,相比于使用gz、xz格式压缩内核,系统启动速度会更快。
更快的关机速度
更新了systemd服务管理系统,启动系统和关闭系统会更快。关机只需要2秒。
多个桌面环境
官方提供有Gnome3和KDE两个镜像方式安装桌面环境,软件中心里有Cinnamon,软件打包组还发布了更加轻量的MATE类Gnome2桌面 ,更节省资源。
Gnome2过渡到Gnome3
以前做的都是Gnome2桌面环境,这次做的Gnome3桌面环境,将会提供更佳的“起点操作系统”式优化操作体验。
Gnome-shell插件
起点系统精心优化Gnome3桌面环境,提供更多Gnome-shell插件,让您轻松打造属于自己的Gnome3。
高效的GTK3
GTK3相对于GTK2有更好的性能,绘图显示更加流畅。
Gnome-shell崩溃自动重启
假如Gnome-shell因为某种原因崩溃了,不要紧,它会马上自动恢复,丝毫不会影响您的应用
‘伍’ Gtk2 Gtk3 应该学习那一个
当然3。2是迟早被废弃的东西。我不知道你要在windows下学Gtk干嘛,如果你从来不用linux,说实话没必要学Gtk,还不如学学qt。
gtk的官方没有出windows版,某种意义上已经说明了什么;不过如果你还是坚持要在windows下学习gtk3,也是可以的,有个人编译了gtk3.x的windows版,参见http://www.tarnyko.net/en/
‘陆’ 如何在Windows下体验一下GTK3
你的这些文件不太对。 我的安装程序就一个exe 名称:gtk-dev-2.12.9-win32-1.exe。 你在网上找找。。。
‘柒’ linux下GTK+和Glade3编程信号处理问题
g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(gtk_main_quit),NULL);
你创建窗体了吗? 不然你把这个加在
gtk_builder_connect_signals(builder.....)的前面吧!~!~!