Qt彈出標準對話方塊的方法

2021-08-14 10:19:21 字數 2994 閱讀 7224

參考:先來看一下最熟悉的qmessagebox::information。我們在以前的**中這樣使用過:

現在我們從api中看看它的函式簽名:

static standardbutton qmessagebox::information ( qwidget * parent, const qstring & title, const qstring & text, standardbuttons buttons = ok, standardbutton defaultbutton = nobutton );
首先,它是static的,所以我們能夠使用類名直接訪問到(怎麼看都像廢話…);然後看它那一堆引數,第乙個引數parent,說明它的父元件;第二個引數title,也就是對話方塊的標題;第三個引數text,是對話方塊顯示的內容;第四個引數buttons,宣告對話方塊放置的按鈕,預設是只放置乙個ok按鈕,這個引數可以使用或運算,例如我們希望有乙個yes和乙個no的按鈕,可以使用qmessagebox::yes | qmessagebox::no,所有的按鈕型別可以在qmessagebox宣告的standarbutton列舉中找到;第五個引數defaultbutton就是預設選中的按鈕,預設值是nobutton,也就是哪個按鈕都不選中。這麼多引數,豆子也是記不住的啊!所以,我們在用qtcreator寫的時候,可以在輸入qmessagebox::information之後輸入(稍等一下,qtcreator就會幫我們把函式簽名顯示在右上方了,還是挺方便的乙個功能!

qt提供了五個類似的介面,用於顯示類似的視窗。具體**這裡就不做介紹,只是來看一下樣子吧!

請注意,最後乙個about()函式是沒有後兩個關於button設定的按鈕的!qmessagebox對話方塊的文字資訊時可以支援html標籤的。例如:

這裡我們使用的是exec()函式,而不是show(),因為這是乙個模態對話方塊,需要有它自己的事件迴圈,否則的話,我們的對話方塊會一閃而過哦。需要注意的是,同其他的程式類似,我們在程式中定義的相對路徑都是要相對於執行時的.exe檔案的位址的。比如我們寫"icon.png",意思是是在.exe的當前目錄下尋找乙個"icon.png"的檔案。這個程式的執行效果如下:

還有一點要注意,我們使用的是png格式的。因為qt內建的處理格式是png,所以這不會引起很大的麻煩,如果你要使用jpeg格式的的話,qt是以外掛程式的形式支援的。在開發時沒有什麼問題,不過如果要部署的話,需要注意這一點。

最後再來說一下怎麼處理對話方塊的互動。我們使用qmessagebox類的時候有兩種方式,一是使用static函式,另外是使用建構函式。首先來說一下static函式的方式。注意,static函式都是要返回乙個standardbutton,我們就可以通過判斷這個返回值來對使用者的操作做出相應。

qmessagebox::standardbutton rb = qmessagebox::question(null, "show qt", "do you want to show qt dialog?", qmessagebox::yes | qmessagebox::no, qmessagebox::yes); 

if(rb == qmessagebox::yes)

如果要使用建構函式的方式,那麼我們就要自己執行判斷一下啦:

qmessagebox message(qmessagebox::noicon, "show qt", "do you want to show qt dialog?", qmessagebox::yes | qmessagebox::no, null); 

if(message.exec() == qmessagebox::yes)

其實道理上也是差不多的。

QT標準對話方塊

區別 彈出對話方塊後之前的對話方塊是否可以響應 qmenubar mb menubar setmenubar mb qmenu mu mb addmenu 對話方塊 qaction mua1 mu addaction 模態對話方塊 connect mua1,qaction triggered,qac...

Qt標準對話方塊

qt中有9個標準對話方塊。1.qcolordialog 顏色對話方塊,能夠允許使用者選擇顏色 2.qerrormessage 顯示錯誤資訊 3.qfiledialog 檔案對話方塊,能夠允許使用者選的乙個或者多個檔案以及目錄 4.qfontdialog 字型對話方塊,允許使用者選擇 設定字型 qin...

Qt之標準對話方塊 顏色對話方塊

1 在標頭檔案中包含 include qcolordialog void widget on colorbutton clicked 這裡使用了qcolordialog的靜態函式getcolor 來獲取顏色,它的三個引數的作用分別是 設定初始顏色 指定父視窗和設定對話方塊標題。getcolor 函式...