1. 程式人生 > >QT——QWidget、QMainWindow、 QDialog用法區別解析

QT——QWidget、QMainWindow、 QDialog用法區別解析

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

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


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

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


    如果是頂級對話方塊,那就基於QDialog建立,如果是主窗體,那就基於QMainWindow,如果不確定,或者有可能作為頂級窗體,或有可能嵌入到其他窗體中,則基於QWidget建立。

相關推薦

QT——QWidgetQMainWindow QDialog用法區別解析

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

Qt視窗之QMainWindowQDialogQWidget

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/rl529014/article/details/51419126   在 Qt 中,我們將視窗和控制元件統稱為部件(Widget)。   視窗是指程式的整體介面

QWidgetQMainWindowQDialog和QFrame的區別

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

QWIDGETQMAINWINDOWQFRAMEQWINDOWQDIALOGQSCROLLAREA區別

QWindow一般不用 QDialog對話方塊而已 QScrollArea有滾動條的視窗。 from PyQt5.QtWid

absfabsfabsf函式的用法區別

abs、fabs、fabsf三個函式都是用來求一個數的絕對值,區別如下: 1)int abs(int a);                     // 處理int型別的取絕對值

linux中shell的小括號大括號的用法區別

②命令替換。命令替換$(cmd)等同於`cmd`(這不是單引號,`是ESC下面的那個鍵) ,shell執行過程中發現了$(cmd)結構,便將$(cmd)中的cmd執行一次,得到其輸出,再將此輸出放到原來命令。例如: [[email protected] tmp]# ls fstab  functi

QWidget,QMainWindowQDialog區別

在建立Qt Gui Application時,總會讓你選擇在QWidget,QMainWindow和QDialog中選擇一個Base Class。 這三個類具體有什麼區別呢?在Qt的手冊和網上找了一些資料。 先看官方的手冊:QWidget Class ReferenceT

QtQWidgetQDialogQMainWindow的異同點【轉】

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

QTQMainWindowQWidgetQDialog

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

QWidgetQDialogQMainWindow 的異同點

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

數組去重,callapplybind之間的區別,this用法總結

步驟 -- 之間 undefined 定義 ply clas turn 需要 一、數組去重,直接寫到Array原型鏈上。 1 //該方法只能去除相同的數字 不會去判斷24和‘24‘是不同的 所有數字和字符串數字是相同是重復的 2 Array.prototype

htmlvalattrprop區別。this.value和$(this).val()區別以及return用法

生態 所有 select 批量 控制 添加屬性 ext his 區別 html(): html() 方法返回或設置被選元素的內容 (inner HTML)。 當使用該方法讀取多個值時,它會返回第一個匹配元素的內容。 當使用該方法設置一個值時,它會覆蓋所有匹配元素的內容。 取

HashMapHashTableLinkedHashMap和TreeMap用法區別

strong style 取出 能力 順序 ron public ons 保存 Java為數據結構中的映射定義了一個接口java.util.Map,它有四個實現類,分別是HashMap、HashTable、LinkedHashMap和TreeMap。本節實例主要介紹這4中實

CSS之pxemrempt的用法區別

分辨 計算機系統 字符 css dpi logs pre 國外 12px px:一個虛擬長度單位,是計算機系統的數字化圖像長度單位,換算成物理長度,需要制定經度DPI。Windows系統默認是96dpi,Apple系統默認是72dpi。 一個相對長度單位,像素px是相對

PHP中VC6VC9TSNTS版本的區別用法詳解

進行 系統資源 stc 詳解 ron 線程安全 info 啟動 win 1. VC6與VC9的區別: VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設的,那你就選擇VC6版本。 VC9版本是使用Visual Studio 20

localStoragesessionStorageCookie的區別用法

code class () 所有 標簽 無法 style col item localStorage html5新增的一個本地存儲API,所謂localStorage就是一個小倉庫的意思,它有5M的大小空間,存儲在瀏覽器中。 localStorage生命周期是永久,這意味著

alloc()malloc()calloc()realloc()區別用法

CA 這一 首地址 動態分配內存 調用函數 空指針 size 指針類型 空間 C語言跟內存申請相關的函數主要有 alloca,calloc,malloc,free,realloc,sbrk等. 函數malloc()和calloc()都可以用來動態分配內存空間,

(String)toStringString.valueOf用法區別(轉)

AI word plain 存在 ner poi == string ont 在Java項目的實際開發和應用中,常常需要用到將對象轉為String這一基本功能。本文將對常用的轉換方法進行一個總結。 常用的方法有(String)要轉換的對象,Object#toSt

scala的==equalseqne區別用法

根據官方API的定義: final def ==(arg0: Any): Boolean The expression x == that is equivalent to if (x eq null) that eq null else x.equals(that) final de

c++ :cin cin.getline() getline() 的用法區別

主要內容: cin用法 cin.getline()用法 getline()用法 注意問題 1. cin>> 用法1:輸入一個數字或字元 #include using namespace std; main () { int a,b