原創|其它|編輯:郝浩|2009-11-24 10:04:22.000|閱讀 683 次
概述:在正式開始GObject的學習之前,還要簡單提一下大名鼎鼎的建立在GObject系統之上的桌面圖形庫Gtk,先來個最簡單的程序看看。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
PART 2.
在正式開始GObject的學習之前,還要簡單提一下大名鼎鼎的建立在GObject系統之上的桌面圖形庫Gtk,先來個最簡單的程序看看。
#include <gtk/gtk.h>
int main( int argc, char *argv[])
{
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(window);
gtk_main();
return 0;
}
這段代碼的作用其實就是顯示一個啥都沒有的窗口。
有些剛接觸gtk的人覺得gtk的函式名總是很長,其實也是有它的原因的,后面再說。
如果我們將上面代碼中的Gtk,gtk,GTK去掉,似乎會簡明不少。
其實就是 聲明window(窗口),new一個window,顯示window 三步,當然最后進入一個循環 gtk_main 中。
除了函數名長了些之外,不難發現大小寫,下劃線的組合還蠻多的,這也是挺麻煩事情。
下面就這些冗長而又麻煩的事情,簡單加以說明(就是我個人的理解…….XD),
GTK(不分大小寫)其實就是表明了這個函式是gtk庫提供的,它表明的是一個域,就像System.out.***之類,前面的一堆寫起來也是挺麻煩的一樣。
而大小寫和下劃線的搭配下面舉例來說
GtkWindow 用于對象[構件]的聲明
GTK_WINDOW 用于對象類型的轉換
gtk_window_*** 用于與對象相關的函式的聲明
這樣的規則不是gtk說了算的,而是GType,GObject決定的,轉而言之,一般的基于Glib的庫都采用這樣的規則,比如進來很流行的2.5D桌面圖形庫Clutter,里面構件的聲明也遵循此規則。
如果想玩下Clutter,但又不懂linux,可以參考下面這篇博文,在win32上搭建Clutter的開發環境。
下面簡單說下GObject實現的一些面向對象的機制(當然都是模擬的),
類型機制,
繼承,
接口,
函式調用(普通,虛,純虛,當然這需要你自己來理解),
類型轉化(靜態,動態,基礎類型),
類型檢測,
屬性機制,
信號機制(signal,closure,accumulator…..)
。。。。。。
有很多東西其實平時是用不到滴【其實是目前我還沒搞明白】,所以下面的代碼集中說明如下一些東西
繼承,
接口,
函式調用(普通,虛,純虛)
函式(普通的,虛的)
信號機制(signal)
類型轉化(靜態)【動態的簡單看了下,有時間的話也會寫點……XD】
類型檢測
屬性機制
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:博客園