1. 程式人生 > >QT中QT Widgets Application中QWidget、QDialog及QMainWindow的區別

QT中QT Widgets Application中QWidget、QDialog及QMainWindow的區別

    QWidget類是所有使用者介面物件的基類。 視窗部件是使用者介面的一個基本單元:它從視窗系統接收滑鼠、鍵盤和其它事件,並且在螢幕上繪製自己。每一個視窗部件都是矩形的,並且它們按Z軸順序排列。一個視窗部件可以被它的父視窗部件或者它前面的視窗部件蓋住一部分。 

    QMainWindow 類提供一個有選單條、錨接視窗(例如工具條)和一個狀態條的主應用程式視窗。主視窗通常用在提供一個大的中央視窗部件(例如文字編輯或者繪製畫布)以及周圍 選單、工具條和一個狀態條。QMainWindow常常被繼承,因為這使得封裝中央部件、選單和工具條以及視窗狀態條變得更容易,當用戶點選選單項或者工具條按鈕時,槽會被呼叫。


    QDialog類是對話方塊視窗的基類。對話方塊視窗是主要用於短期任務以及和使用者進行簡要通訊的頂級視窗。QDialog可以是模態對話方塊也可以是非模態對話方塊。QDialog支援擴充套件性並且可以提供返回值。它們可以有預設按鈕。QDialog也可以有一個QSizeGrip在它的右下角,使用setSizeGripEnabled()。 

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


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

相關推薦

QTQT Widgets ApplicationQWidgetQDialogQMainWindow區別

    QWidget類是所有使用者介面物件的基類。 視窗部件是使用者介面的一個基本單元:它從視窗系統接收滑鼠、鍵盤和其它事件,並且在螢幕上繪製自己。每一個視窗部件都是矩形的,並且它們按Z軸順序排列。一個視窗部件可以被它的父視窗部件或者它前面的視窗部件蓋住一部分。     

【轉】QTQWidgetQDialogQMainWindow區別

屏幕 編輯 派生 標記 裝飾 按鈕 set 沒有 idg QWidget類是所有用戶界面對象的基類。 窗口部件是用戶界面的一個基本單元:它從窗口系統接收鼠標、鍵盤和其它事件,並且在屏幕上繪制自己。每一個窗口部件都是矩形的,並且它們按Z軸順序排列。一個窗口部件可以被它的父窗口

QTQWidgetQDialog以及MainWindow的區別

QWidget類是所有使用者介面物件的基類。 視窗部件是使用者介面的一個基本單元:它從視窗系統接收滑鼠、鍵盤和其它事件,並且在螢幕上繪製自己。每一個視窗部件都是矩形的,並且它們按Z軸順序排列。一個視窗部件可以被它的父視窗部件或者它前面的視窗部件蓋住一部分。

QTQMainWindowQWidgetQDialog

qdoc mes ica 管理器 pro 執行過程 src 類型 獲得 QT中QMainWindow、QWidget、QDialog 簡述 在分享所有基礎知識之前,很有必要在這裏介紹下常用的窗口-QWidget、QDialog、QMainWindow。 熟悉Qt的同學

QtQWidgetQDialogQMainWindow的異同點【轉】

簡述 在分享所有基礎知識之前,很有必要在這裡介紹下常用的視窗-QWidget、QDialog、QMainWindow。 熟悉Qt的同學都應該知道,在新建Qt Widgets專案進行類資訊選擇時會碰到它們,沒錯,很巧,每次都能碰到。所以,在以後的Qt開發中,我們會經常和它們打

springboot logback動態獲取application配置項

在多環境的情況下,logback的日誌路徑需要進行鍼對性配置,也就是需要通過application.yml檔案中進行配置。 logback自身支援以下方式配置: <property name="USER_HOME" value="/home/sebastien" /> 但是怎

Mybatis《insert》返回maplist巢狀association和collection分佈查詢延遲載入(懶載入)(按需載入)

本文目錄類容目錄結構: 一、select返回值 1、返回值記錄封裝為List 2、返回值記錄封裝為map 二、select_resultMap 1、自定義結果對映規則 2、關聯查詢_級聯屬性封裝結果,即<result column="did" pro

JavaString類的isEmpty方法null以及""的區別

一直以來對String的這三個空挺暈的,剛好同事問我,我也學習下。從別人部落格上看到的是這樣的:     isEmpty()         分配了記憶體空間,值為空,是絕對的空,是一種有值(值 =

三分鐘看懂大資料風控使用者行為資料的採集分析應用( 轉 )

據統計,目前銀行傳統的風控模型對市場上70%的客戶是有效的,但是對另外30%的使用者,其風控模型有效性將大打折扣。大資料風控作為傳統風控方式補充,主要利用行為資料來實施風險控制,使用者行為資料可以作為另外的30%客戶風控的有效補充。那麼,大資料風控運營中,會主要分析使用者的哪

ibatis輸入/輸出各種型別的引數分析#與$區別 (轉)

(1)在資料庫持久層的框架中,大家一定聽過Hibernate的大名了吧,經典的SSH框架就有它的一份哦!可是我今天要說的卻是另外一個持久層的框架,它就是iBatis。與Hibrenate相比,它的主要優勢就是簡單、小巧、輕量級,但是它的功能卻絲毫不亞於 Hibernate,下

QWidgetQDialogQMainWindow 的異同點

簡述 在分享所有基礎知識之前,很有必要在這裡介紹下常用的視窗 - QWidget、QDialog、QMainWindow。 QWidget繼承於QObject和QPaintDevice,QDialog和QMainWindow則繼承於QWidget,QDial

HashMapHashTableConcurrentHashMap區別工作原理

前言 第一次寫部落格,水平有限可能有理解不到位或理解錯的地方。歡迎各位大神參與討論或指正。 Map在工作中的使用頻率較高,HashMap相關的問題在面試中也經常被問到。所以抽空在網上找資料對它們進行了系統的學習,作出以下幾點總結: HashMap、Hash

QTQT的學習:qml使用listmodelistview實現選項的變換操作,類似qwidgetlistwidget的作用。

(1)方法一:點選某一選項,某一個選項的顏色就立即會發生變化 ListView { id : m_listView anchors.fill: parent anchors.margins: 20 clip: true model: ["A","B","C","D","E"

Qt Quick ApplicationQt Widgets ApplicationQML的區別

用QML編寫視覺化介面。類似於編寫網站的形式,語法和HTML非常的類似。可以把css+div的程式移植到QT當中去,這樣視覺化的介面就不用拖拉控制元件的形式佈局,而是用QML的形式佈局。 Qt Quick Application頁面佈局(UI)用的QML,但是內部的業務邏輯還是用QT語法。

Qt小心得之1: QWidget新增Q_OBJECT巨集, setStyleSheet設定了背景顏色不顯示

          QWidget在沒有新增Q_OBJECT巨集,在建構函式裡用setStyleSheet設定了背景顏色,是可以正常顯示,但添加了Q_OBJECT巨集後,QWidget就無法顯示背景色了, 百度了一下,發現了類似問題,說是QWidge

Qt在pro設定執行時庫MTMTdMDMDd,只適合VS版本的Qt

轉自:http://blog.csdn.net/caoshangpa/article/details/51416077 一.在pro中設定執行時庫 最近在用Qt5.6.0(VS2013版本)呼叫一份用Visual Studio 2013編譯的Debug版本靜態庫時出現如下錯誤:

Qt為工程新增資原始檔給按鈕新增圖片

上一次佈局好之後做了小小的改動,就是在左邊放按鈕的上面添加了一個放logo的label(雖然還沒有想好要放什麼logo—— ) 現在的佈局就是這樣子了: 下面要做的是給按鈕新增圖示,還有在logo和右邊的大label上放上初始的圖片,這裡就需要為工程新增資原始

qt獲取檔案路徑和檔名字尾名

QString file_full, file_name, file_path,file_suffix ; QFileInfo fileinfo; file_full = QFileDialog::getOpenFileName(this,.....); fileinfo =

淺談JS的!=== !=====的用法和區別 JSNull與Undefined的區別 讀取XML文件 獲取路徑的方式 C#Cookie,Session,Application的用法與區別? c#反射 抽象工廠

main 收集 data- 時間設置 oba ase pdo 簡單工廠模式 1.0 var num = 1; var str = ‘1‘; var test = 1; test == num //true 相同類型 相同值 te

Qt在多線程使用信號槽的示例

mov 函數 cout this [] rdb 默認 emit etl   之前對線程理解得不深入,所以對Qt的線程機制沒有搞清楚,今天寫一篇文章總結一下,如有錯誤,歡迎指出。 首先需要理解線程是什麽,線程在代碼中的表現其實就是一個函數,只不過這個函數和主