ubuntu下Gtk+glade搭建和編程

原文地址:http://tc.itkee.com/os/detail-166c.html

環境 ubuntu 10.10  glade3  gtk2.0

安裝ubuntu.............

安裝gtk2.0

apt-get install build-essential #這將安裝gcc/g++/gdb/make 等基本編程工具

apt-get install gnome-core-devel #這將安裝 libgtk2.0-dev libglib2.0-dev 等開發相關的庫文件

apt-get install pkg-config #用於在編譯GTK程序時自動找出頭文件及庫文件位置

apt-get install devhelp #這將安裝 devhelp GTK文檔查看程序

apt-get install libglib2.0-doc libgtk2.0-doc #這將安裝 gtk/glib 的API參考手冊及其它幫助文檔

apt-get install glade libglade2-dev #這將安裝基於GTK的界面GTK是開發Gnome窗口的c/c++語言圖形庫。

apt-get install libgtk2.0*, gtk+2.0所需的所有文件統通下載安裝完畢。

應用程序編譯命令:gcc test.c `pkg-config --cflags --libs gtk+-2.0`,編譯通過,運行正常。

pkg-config是一個用來管理包的程序,在控制檯輸入 pkg-config --cflags --libs gtk+-2.0,可以發現輸出的文本包括了gcc編譯gtk+2.0所需要的所有選項(頭文件目錄和庫文件)。

這裏有一點需要注意, gcc test.c `pkg-config --cflags --libs gtk+-2.0`, pkg-config --cflags --libs gtk+-2.0兩側的引號並不是真正的引號,而是鍵盤數字件那一行,最左邊的那個字符。如果錯用了單引號,gcc無法使用 pkg-config --cflags --libs gtk+-2.0產生的文本作爲編譯選項。構造程序。

安裝glade3 我的是glade3-3.6.7的 不是官網下的,但是裏面都未安裝的

# ./configure --prefix=/usr

# make 

# make install

運行終端可以再/usr/bin/glade-3  找到

cp  glade-3 ~/桌面  即可

運行

glade-3 效果如下

ubuntu下Gtk+glade搭建和編程_第1张图片

那些按鈕時自己加的,怎麼加的一會在告訴你。

先貼出一個好的博客

上面那個對glade入門很好,下面只是對以上博客教程改善一下,更容易理解

其實剛開始用glade很是鬱悶,他不像MFC QtDesigner 直接拖放控件,他控件不是拖放的,而是設定的,也就是說你拖了一個控件,位置是你鼠標改不了的,需要設置屬性,改變他的位置和大小,而且它比MFC多了一個容器的概念。用到這裏感覺QtDesigner好多了~~~

不過相比於QtDesigned 在Qt的開發,glade在gtk裏的開發受到大部分人的推薦,這是因爲,glade可以做到界面和代碼分離的目的。而QtDesigned在這方面並不是這麼明顯(有點牽強!!!),或者說QtCreator做的太好了,集成化了,在designer生成xml文件,和Qt的代碼段讀取xml文件的部分被底層封裝了。在加上C++高度封裝,這使Designer的獨立不是那麼明顯,嘿嘿。只能這麼牽強的說了~本人很喜歡Qt地。一般在Qt的開發中,提倡代碼實現界面,這樣會更加靈活和美觀,而且Qt的界面庫很強大,2D(GraphicsView)以致3D。是designer無法實現的。

話緒繁多

首先在Toplevels選擇window ,如圖所示

ubuntu下Gtk+glade搭建和編程_第2张图片

一個窗體裏必然需要有容器。所以在Containers選擇一個喜歡的容器吧,我這裏選擇的是大家第一列第3個,就是2邊都有箭頭的那個,Toolkit顯示的是Layout(鼠標放上去顯示)。

添加到widget裏。

剩下了就可以像MFC和Designer那樣拖控件了,嘿嘿,但是還有問題哦。上面說到了,鼠標時拖不了控件的!!!

只能是在屬性裏面更改~

上面可以看到屬性,裏面東西隨便點點就能知道大概了,其中signals是下面用到的

點控件上的按鈕

屬性出現在上圖中,點擊signals如圖


點擊clicked後面handler裏選擇下拉條徐澤button_clicked_cb函數,這個函數是你按鈕clicked信號連接的槽~跟Qt很像額。

保存,呵呵我這裏是Save As 都一樣

ubuntu下Gtk+glade搭建和編程_第3张图片

會發現有兩個GtkBuilder和Libglade。

這個上面連接博客裏詳細的講明這裏就簡單說明下,選擇GtkBuilder生成直接就是xml文件,但是後綴名是glade,知道重命名就行,mv XXX.glade XXX.xml。

如果選擇Libglade,需要重新轉換一下,命令如下

gtk-builder-convert

轉化後也是xml文件。所以gtkBuilder比較容易。

下面看一下程序pro.c的代碼

#include <gtk/gtk.h>

void button_clicked_cb(GtkObject *object, gpointer user_data)
{
        gtk_main_quit ();  //退出程序
}

int main (int argc, char *argv[])
{
GtkWidget *btn; 
GtkBuilder *builder;
GtkWidget *window;
gtk_init (&argc, &argv);//gtk應用程序迴路
builder = gtk_builder_new ();//指針分配空間
gtk_builder_add_from_file (builder, "1.xml", NULL);//讀取1.xml文件 這裏是glade轉化後的
window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));//獲取window串口使用權
btn = GTK_WIDGET (gtk_builder_get_object (builder, "button"));//獲取控件使用權
gtk_builder_connect_signals (builder, NULL);//連接裏面的信號到槽
g_object_unref (G_OBJECT (builder));  //釋放xml內存空間
gtk_widget_show (window);//顯示窗體
gtk_main ();//迴路等待
return 0;
}
實現後點擊按鈕程序就會關閉啦

呀,忘記編譯怎麼編譯了,做一個makefile文件,用起來很方便的

vim makefile

輸入如下:

text:text.c

            gcc -Wall -g -o $@ $< `pkg-config --cflags --libs gtk+-2.0` -export-dynamic

下面的指令很重要,是連接信號和槽的
-export-dynamic
然後程序直接make就行了

如果不怕麻煩

直接

    gcc -Wall -g -otext text.c `pkg-config --cflags --libs gtk+-2.0` -export-dynamic 就行。

好了額,剩下的大家一起努力吧!


你可能感兴趣的:(object,ubuntu,gcc,qt,makefile,gtk)