qt5資訊提示框QMessageBox用法

2022-02-02 11:01:41 字數 3102 閱讀 7051

qmessagebox::information(null, "title", "content", 

qmessagebox::yes | qmessagebox::no, qmessagebox::yes);

這是比較常用的一種用法,效果如下:

information原型:

standardbutton qmessagebox::information(qwidget * parent, const qstring & title, const qstring & text, standardbuttons buttons = ok, standardbutton defaultbutton = nobutton) [static]

示例1:

qmessagebox::information(null, "title", "content");

此時第四第五為預設引數,效果:

示例2:

qmessagebox::information(null, "title", "content",qmessagebox::yes|qmessagebox::no);

此時效果(與圖1相同):

示例三:

qmessagebox::information(null, "title", "content",qmessagebox::yes|qmessagebox::no|

qmessagebox::abort);

新增多個按鈕用|運算子連線,效果:

按鈕型別參考:

會建立訊息提示框後,我們怎麼知道使用者點了什麼呢,看如下小例子:

qmessagebox:: standardbutton result= qmessagebox::information(null, "title", "content",qmessagebox::yes|qmessagebox::no);

switch (result)

critical adj. 關鍵的; 批評的,愛挑剔的; 嚴重的; 極重要的;

qmessagebox::critical(null, "critical", "content", qmessagebox::yes | qmessagebox::no, qmessagebox::yes);

效果:

qmessagebox::warning(null, "warning", "content", qmessagebox::yes | qmessagebox::no, qmessagebox::yes);

效果:

qmessagebox::question(null, "question", "content", qmessagebox::yes | qmessagebox::no, qmessagebox::yes);

效果:

原型:static void about(qwidget *parent, const qstring &title, const qstring &text);

qmessagebox::about(null, "about", "by hjwblog.com");

效果:

如果是自己建立的qmessagebox物件,而不是用上面的static函式

示例1:

void mainwindow::on_pushbutton_clicked()

這裡在按鈕的clicked槽裡面建立了乙個qmessagebox,但是這樣會出現訊息框一閃而過。這是因為c++區域性變數的生命週期結束了,qmessagebox messagebox是函式區域性變數,函式結束後它的生命週期也結束了。

示例2:

void mainwindow::on_pushbutton_clicked()

效果:

這樣就好理解了,c++函式裡面的static變數在函式結束時不會被**。

示例3:

void mainwindow::on_pushbutton_clicked()

這樣寫也能顯示提示框,但是這樣會記憶體洩漏。

示例4:

前面的用法都不太完美,我們希望能方便的顯示提示框並且獲取使用者點選了哪個按鈕。因為qmessagebox繼承qdialog,而qdialog有乙個神奇的函式exec(),呼叫這個函式後,訊息迴圈會在這個函式裡面進行更新,而呼叫它的函式是被「暫停」的,就是說等使用者點選按鈕後,呼叫exec()的函式才繼續執行。

直接上**:

void mainwindow::on_pushbutton_clicked()

}

上面的**實現了點選按鈕退出,並且在退出前確定的功能。

exec()的返回值和前面的information()一樣,是整數(information()是列舉)。可以通過返回值來確定使用者點選了哪個按鈕。

qmessagebox物件呼叫exec()函式能實現與前面的幾個靜態函式相似的功能。

qt之透明提示框

int width this width this resize width,28 this setwindowflags qt framelesswindowhint 設定標題欄隱藏 qpalette palette 設定背景色 qcolor color 190,230,250 color.set...

Qt之透明提示框

經常使用企鵝的小夥伴一定對登入失敗的提示框很熟悉,主要涉及視窗透明並新增圖示 提示資訊 關閉按鈕的顯示等。我們可以利用qwidget建立乙個提示框,然後通過樣式設定我們想要的效果。設定顯示文字 void qmessagewidget settext const qstring text 設定樣式需要...

Qt之等待提示框(QMovie)

關於gif的使用在實際專案中我用的並不多,因為我感覺瑕疵挺多的,很多時候鋸齒比較嚴重,當然與圖存在很大的關係。關於生成gif的方法可以提供乙個 preloaders,基本是可以滿足需求的。由於錄製程式的原因,引起gif效果不清晰,可忽略。通過使用qmovie來設定動畫 可以呼叫setspeed 設定...