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);critical adj. 關鍵的; 批評的,愛挑剔的; 嚴重的; 極重要的;switch (result)
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 設定...