QMessageBox自行設(shè)計(jì)對(duì)話框

使用QMessageBox,我們可以直接使用其中的靜態(tài)方法,如information(),warning()等。但是有時(shí)候我們希望自行設(shè)計(jì)對(duì)話框,但又不是建立一個(gè)新的UI文件,這時(shí)我們可以使用一下方法:

QMessageBox msgBox;
msgBox.setWindowTitle("");             //設(shè)置窗口名
msgBox.setText("");                        //設(shè)置文本
msgBox.setInformativeText("");      //設(shè)置提示文本
msgBox.setStanderButtons(QMessageBox::Discard | QMessageBox::Cancel);  //加入按鈕
msgBox.setButtonText(QMessageBox::Discard,"");    //設(shè)置按鈕文本
msgBox.setDefaultButton(QMessageBox::Discard);   //設(shè)置缺省按鈕
int ret = msgBox.exec();          //模態(tài)對(duì)話框,并獲得按鍵值
//int ret = msgBox.show();         //非模態(tài)對(duì)話框
switch(ret)
{
        case QMessageBox::Discard:
                 //do something;
        case QMessageBox::Cancel:
                //do something;
}

這樣我們就自行創(chuàng)立了一個(gè)對(duì)話框,注:
(1)information(),warning()等方法是有返回值的,能獲得按鍵值,代碼中也實(shí)現(xiàn)了這一功能。
(2)模態(tài)對(duì)話框(.exce()):在對(duì)話框彈出期間,用戶不可以切換同程序下的其它窗口,直到該對(duì)話框被關(guān)閉,warning()方法達(dá)到同一效果。
(3)非模態(tài)對(duì)話框(.show()):控制權(quán)即刻返回給調(diào)用函數(shù),可以切換其他窗口,information()方法達(dá)到同一效果。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容