轉自:https://blog.csdn.net/Carl_Qi/article/details/83998889
QMessageBox是Qt框架下專門用於彈出對話框的類,一般會提供幾個按鈕(例如:Ok、Cancel、Yes、No、Ignore等)供用戶點擊選擇。對話框的按鈕在默認情況下為英文顯示,本文提供了一種簡單快速的修改為中文的方法。
1 // 創建一個question彈出對話框,添加兩個按鈕:Yes和No 2 QMessageBox *msgBox = new QMessageBox(QMessageBox::Question, tr("對話框標題"), tr("對話框內容"), QMessageBox::Yes | QMessageBox::No); 3 4 // 將原本顯示“Yes”的按鈕改為顯示“是” 5 msgBox->button(QMessageBox::Yes)->setText("是"); 6 7 // 將原本顯示“No”的按鈕改為顯示“否” 8 msgBox->button(QMessageBox::No)->setText("否"); 9 10 // 彈出對話框 11 msgBox->exec();

溫馨小提示:上述方法是將默認的英文按鈕改為中文按鈕,其實完全可以任意自定義按鈕的顯示,例如在制作一個音樂播放器軟件時,當音樂播放停止后,自動彈出對話框,用戶點擊“Play”按鈕則選擇繼續播放,用戶點擊“Stop”按鈕則停止播放,就可以用下面的程序實現。
1 // 創建一個question彈出對話框,添加兩個按鈕:Yes和No 2 QMessageBox *msgBox = new QMessageBox(QMessageBox::Question, tr("對話框標題"), tr("對話框內容"), QMessageBox::Yes | QMessageBox::No); 3 4 // 將原本顯示“Yes”的按鈕改為顯示“Play” 5 msgBox->button(QMessageBox::Yes)->setText("Play"); 6 7 // 將原本顯示“No”的按鈕改為顯示“Stop” 8 msgBox->button(QMessageBox::No)->setText("Stop"); 9 10 // 啟動對話框,用res變量記錄用戶最終點選的按鈕 11 int res = msgBox->exec(); 12 if(QMessageBox::Yes == res) 13 Play(); // 繼續播放 14 else if(QMessageBox::No == res) 15 Stop(); // 停止播放 16 else 17 ...
