淺談 QT 窗口部件類 學(xué)習(xí)基礎(chǔ)
QT 窗口部件類 學(xué)習(xí)基礎(chǔ)是本文介紹的內(nèi)容,QT本身的機(jī)制就是建立在C++的基礎(chǔ)之上,所以類與類之間的繼承和派生是最基本的要素。
所謂的最基本的窗口類,它的父類一般是QWidget、QFrame、QScrollview;這三個(gè)類之間是繼承的關(guān)系,分別是祖父、父、與子的關(guān)系;QWidget是所有窗口部件的基類,QFrame類是帶有框架(如帶有凸出邊界的QLabel)的窗口部件的基類;而QScrollview類是視圖窗口部件(如QIconView)的基類;
1、正是有所謂的繼承的關(guān)系,才有void QApplication::setMainWidget ( QWidget * mainWidget ) [虛] ,這個(gè)函數(shù)的作用是將派生類的對(duì)象插入到主窗口中,顯然是個(gè)虛函數(shù),并且其基類的指針指向的是派生類的對(duì)象。
符合C++中的派生類多態(tài)的性質(zhì)。另外,通常插入到主窗口中的部件應(yīng)該是某種復(fù)合部件,是多個(gè)部件、文本、和其他應(yīng)用程序的主窗口元件的集合。當(dāng)定義了多個(gè)窗口部件后,應(yīng)該定義一個(gè)容器類,這個(gè)容器類就是Qwidget類的派生類,在此容器類中,將零碎的類窗口部件包含。在比較簡(jiǎn)單的實(shí)際例子中,也就是一個(gè)單純的派生類的窗口部件了。
2、一般在定義了一個(gè)窗口部件后,還需對(duì)該窗口部件的屬性進(jìn)行定義。這就是部件類的方法的調(diào)用,如最普通的長(zhǎng)寬、字符串在窗口部件中的位置等;
3、特別要注意的是如同在C++中一樣,每個(gè)成員函數(shù)(除了某些static成員函數(shù))都有一個(gè)額外的、隱含的形參this,在調(diào)用成員函數(shù)的時(shí)候,this初始化為調(diào)用成員函數(shù)對(duì)象的地址。
所以在很多情況下,如下:label =new QLabel("0",this);以上的this可以理解是一個(gè)基類的指針或是引用指向的派生類label對(duì)象;也就是說(shuō),在QT中,當(dāng)定義一個(gè)類時(shí)候,并初始化的時(shí)候,一般將隱含的指針this加入成員函數(shù)中;
4、QT中最重要的通信機(jī)制是信號(hào)與插槽,所謂的信號(hào)有共有的信號(hào)(繼承的信號(hào)),也可以是自定義的信號(hào);同樣槽函數(shù)也是一樣,最自由的應(yīng)用當(dāng)然還是自定義的一些槽函數(shù);槽***的特點(diǎn)是它們可以被信號(hào)連接,槽的參數(shù)不能含有默認(rèn)值。槽函數(shù)作為普通的函數(shù),它同樣有訪問(wèn)的權(quán)限,同樣有public\protected\private\三種權(quán)限;甚至槽還可以被定義為虛函數(shù)。
小結(jié):關(guān)于淺談 QT 窗口部件類 學(xué)習(xí)基礎(chǔ)的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!更多內(nèi)容請(qǐng)參考編輯推薦。