『壹』 如何在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.....)的前面吧!~!~!