原創(chuàng)|其它|編輯:郝浩|2009-11-24 10:04:22.000|閱讀 683 次
概述:在正式開始GObject的學(xué)習(xí)之前,還要簡單提一下大名鼎鼎的建立在GObject系統(tǒng)之上的桌面圖形庫Gtk,先來個最簡單的程序看看。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
PART 2.
在正式開始GObject的學(xué)習(xí)之前,還要簡單提一下大名鼎鼎的建立在GObject系統(tǒng)之上的桌面圖形庫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 三步,當(dāng)然最后進(jìn)入一個循環(huán) gtk_main 中。
除了函數(shù)名長了些之外,不難發(fā)現(xiàn)大小寫,下劃線的組合還蠻多的,這也是挺麻煩事情。
下面就這些冗長而又麻煩的事情,簡單加以說明(就是我個人的理解…….XD),
GTK(不分大小寫)其實就是表明了這個函式是gtk庫提供的,它表明的是一個域,就像System.out.***之類,前面的一堆寫起來也是挺麻煩的一樣。
而大小寫和下劃線的搭配下面舉例來說
GtkWindow 用于對象[構(gòu)件]的聲明
GTK_WINDOW 用于對象類型的轉(zhuǎn)換
gtk_window_*** 用于與對象相關(guān)的函式的聲明
這樣的規(guī)則不是gtk說了算的,而是GType,GObject決定的,轉(zhuǎn)而言之,一般的基于Glib的庫都采用這樣的規(guī)則,比如進(jìn)來很流行的2.5D桌面圖形庫Clutter,里面構(gòu)件的聲明也遵循此規(guī)則。
如果想玩下Clutter,但又不懂linux,可以參考下面這篇博文,在win32上搭建Clutter的開發(fā)環(huán)境。
下面簡單說下GObject實現(xiàn)的一些面向?qū)ο蟮臋C(jī)制(當(dāng)然都是模擬的),
類型機(jī)制,
繼承,
接口,
函式調(diào)用(普通,虛,純虛,當(dāng)然這需要你自己來理解),
類型轉(zhuǎn)化(靜態(tài),動態(tài),基礎(chǔ)類型),
類型檢測,
屬性機(jī)制,
信號機(jī)制(signal,closure,accumulator…..)
。。。。。。
有很多東西其實平時是用不到滴【其實是目前我還沒搞明白】,所以下面的代碼集中說明如下一些東西
繼承,
接口,
函式調(diào)用(普通,虛,純虛)
函式(普通的,虛的)
信號機(jī)制(signal)
類型轉(zhuǎn)化(靜態(tài))【動態(tài)的簡單看了下,有時間的話也會寫點……XD】
類型檢測
屬性機(jī)制
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:博客園