QT17 對話方塊及其型別 QDialog

2021-10-22 10:47:10 字數 1657 閱讀 1619

本文學習自 狄泰軟體 唐佐林老師的 qt課程。

qdialog是qt中所有對話方塊的基類,qdialog繼承於qwidget 是一種容器型別的元件,qdialog 物件 只能 必須 作為頂層的視窗而存在,不能作為子部件嵌入其他容器中,qdialog是定製了視窗樣式的特殊的 qwidget。而qdialog 與 qwidget的區別也就是, qdialog 只能 作為頂層的視窗,而qwidget不是。

qdialog可以建立:

1 模態對話方塊: 阻塞式對話方塊,在棧上建立,顯示後 無法與父窗**互,一直位於頂層

qdialog::exec() ,建立模態對話方塊,注意在棧上建立 qdialog物件

只有模態對話方塊 有返回值概念,表示互動結果

qdialog::done(int i) :關閉對話方塊,並將引數作為交換結果

引數為:accepted :使用者操作成功

引數為:rejected :使用者操作失敗

具體值:其他

2 非模態對話方塊:非阻塞式對話方塊,在堆上建立,顯示後,可以與父窗**互

qdialog* dialog = new qdialog(this); 注意在堆上建立 qdialog物件,並指定父子關係,指定父元件,這樣元件會一直在父元件上

qt::wa_deleteonclose :需要設定 屬性 釋放資

qdialog::show()

可以與父元件互動,需要設定父元件this,才會一直位於父元件上面

3 混合態對話方塊 : 程式不阻塞,但是對話方塊阻塞,顯示後無法與父視窗進行互動

qt::wa_deleteonclose :需要設定 屬性 釋放資

qdialog::setmodal(true);//設定混合特性對話方塊屬性,建立 混合態對話方塊。

qdialog::show();

實驗 :qdialog 模態,非模態,混合態 對話方塊 使用

標頭檔案:

#ifndef dialog_h

#define dialog_h

#include #include class dialog : public qdialog

;#endif // dialog_h

建立 模態對話方塊,非模態對話方塊(非阻塞對話方塊,混合特性對話方塊)

Qt學習8 對話方塊

4.警告對話方塊 qmessagebox warning this,warn 警告 其他標準對話方塊 顏色對話方塊 qcolor color qcolordialog getcolor qcolor 255,0,0 qdebug 檔案對話方塊 qstring str qfiledialog geto...

Qt4對話方塊之輸入對話方塊

下面這個例子說明乙個簡單的對話方塊的使用。跟之前跟講的c 類例項相應,也是有三個檔案 乙個是標頭檔案,乙個是原始檔,乙個是main檔案。好了,不用多講,如下 inputdialog.h ifndef inputdlg h define inputdlg h include class inputdl...

Qt學習之路 011 對話方塊

qdialog dlg this dlg.exec 防止一閃而過 建立到堆區 qdialog dlg new qdialog this dlg show dlg2 setattribute qt wa deleteonclose 55號 屬性 qmessagebox 靜態成員函式 建立對話方塊 錯誤...