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