QWidget QMainWindow QDialog 三者區別


  Qt類是一個提供所需的像全局變量一樣的大量不同的標識符命名空間。通常情況下,你可以忽略這個類。QObject和一些其它類繼承了它,所以在這個Qt命名空間中定義的所有標識符通常情況下都可以無限制的使用。

  QWidget類是所有用戶界面對象的基類。 窗口部件是用戶界面的一個原子:它從窗口系統接收鼠標、鍵盤和其它事件,並且在屏幕上繪製自己的表現。每一個窗口部件都是矩形,並且它們按Z軸順序排列的。一個窗口部件可以被它的父窗口部件或者它前面的窗口部件蓋住一部分。

  QMainWindow 類提供一個有菜單條、錨接窗口(例如工具條)和一個狀態條的主應用程序窗口。主窗口通常用在提供一個大的中央窗口部件(例如文本編輯或者繪製畫布)以及周圍菜單、工具條和一個狀態條。QMainWindow常常被繼承,因爲這使得封裝中央部件、菜單和工具條以及窗口狀態變得更容易。繼承使創建當用戶點擊菜單項或者工具條按鈕時被調用的槽成爲可能。你也可以使用Qt設計器來創建主窗口。

  QDialog類是對話框窗口的基類。對話框窗口是主要用於短期任務以及和用戶進行簡要通訊的頂級窗口。QDialog可以是模式的也可以是非模式的。QDialog支持擴展性並且可以提供返回值。它們可以有默認按鈕。QDialog也可以有一個QSizeGrip在它的右下角,使用setSizeGripEnabled()。

  QDialog 是最普通的頂級窗口。不被嵌入到一個父窗口部件的窗口部件被叫做頂級窗口部件。通常情況下,頂級窗口部件是有框架和標題欄的窗口(儘管如果使用了一定的窗口部件標記,創建頂級窗口部件時也可能沒有這些裝飾。)在Qt中,QMainWindow和和不同的QDialog的子類是最普通的頂級窗口。

  如果是頂級對話框,那就基於QDialog創建,如果是主窗體,那就基於QMainWindow,如果不確定,或者有可能作爲頂級窗體,或有可能嵌入到其他窗體中,則基於QWidget創建。
  當然了,實際中,你還可以基於任何其他部件類來派生。看實際需求了,比如QFrame、QStackedWidget等等。

  小結:在Qt類中QWidget QMainWindow QDialog 三個類的區別都應該有所瞭解了吧?都是屬於界面劃分的,希望你在學習的過程中,本篇文章能夠幫你解決問題。


*********************************************

QWidget是所有widget的基類
QDialog提供一個對話框
QMainWindow提供一個主窗口,包括菜單欄等

********************************************

QMainWindow是QWidget的派生類,由此可以得出兩點:
 * QMainWindow可以做的,你用QWidget都可以做(無非稍麻煩一點)
 * 能用QWidget的地方,你就可以用QMainWindow。
QMenuBar、QToolBar都是QWidget的派生類,所以可以像QPushButton一樣,可以任意放置。

題外:這幾篇應該有你需要的多有東西:
http://blog.csdn.net/dbzhang800/article/details/6744650
http://blog.csdn.net/dbzhang800/article/details/6737540
http://blog.csdn.net/dbzhang800/article/details/6898971

***********************************************************************8


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章