Glade是針對GTK+工具箱與GNOME桌面開發環境的快速圖形界面開發工具.用Glade設計的用戶接口以XML的文件形式保存,然后根據需要由程序通過libglade庫文件來動態加載.因為使用了libglade庫,Glade XML文件能夠被C,C++,Java,Perl,Python,C#等等語言所支持.針對其他未涉及的語言的支持也是方便的.
在網上可以見到某些關于Glade的教程,大都是關于Linux平臺和Glade 2的,因為原先Glade作為快速開發工具,集成代碼生成功能,生成C文件.所以常常有初學者對網上某些教程所提及的"generate"(生成代碼)功能表示迷惑,在新版本的Glade-3上找不到對應的功能.
新版本的Glade-3是對原先Glade代碼的完全重寫.一個顯著的變化就是去除了代碼生成功能.這樣做是有原因的,即然代碼生成功能不被提倡使用,而是更鼓勵使用libglade功能.但是如果你真需要代碼生成功能的話,它還是可以做為插件來提供的.另一個顯著的不同是glade-3設計用來最大化使用GObject的自省機制(GObject introspection),來使外部工具箱和部件的控制,信號和屬性的集成更加容易.
如果看過Say Hello to GTK+的話,可能感覺那樣的窗體程序太簡單了.那么現在讓我們借助Glade弄點兒復雜一點兒的界面吧.首先來瞧瞧Glade長什么樣,下圖就是Glade在windows下的界面.左邊的窗體的小部件選擇器,相當于調色板.中間是主菜單,右邊的是屬性窗體.
現在開始創建一個類似于文本編輯器的圖形界面.按照上圖標注的順序,依次添加window部件,vertical box部件,menu bar部件,text view部件和Status部件.vertical box設置三行,它是用來進行界面布局,分割空間用,這是gtk+設計與傳統的windows UI設計很不同的地方.后三個部件是放置vertical box中的,最后設計完成圖形如下.保存取名為win.glade.如果你感興趣的話,可以用文件編輯器打開這個文件看看,正如所說的那樣,它是一個xml格式的文本文件.
現在我們設置相關的頭文件和庫文件,編輯一個glade.c文件,添加進以下的代碼,運行看看,會出現如上圖的對話框.雖然這個對話框什么都不干,但是通過Glade,我們能較為容易地設計界面,而不用通過gtk函數,一個一個將控件實現.
#include <gtk/gtk.h>
#include <glade/glade.h>
int main(int argc, char* argv[])
{
GladeXML *gxml;
GtkWidget *window;
gtk_init (&argc, &argv);
gxml = glade_xml_new ("win.glade", NULL, NULL);
window = glade_xml_get_widget (gxml, "hello");
g_object_unref (G_OBJECT (gxml));
gtk_widget_show (window);
gtk_main ();
return 0;
}
posted on 2008-03-27 20:49
len 閱讀(10192)
評論(8) 編輯 收藏 引用 所屬分類:
程序開發