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