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