1. 程式人生 > >自學QT之實現QMessageBox的按鈕中文顯示

自學QT之實現QMessageBox的按鈕中文顯示

QT的資訊框彈出來以後,往往按鈕都是英文的,而這個體驗不是很好。我們需要實現的狀態如圖:

那麼如何實現呢?

看到網上說用setbuttontext()方法,這個是不可行的,因為官方文件有這麼一句話:

Sets the text of the message box buttonbuttontotext. Setting the text of a button that is not in the message box is silently ignored.

這句話的意思說你用這個函式的時候,會被對話方塊預設忽略,請使用addbutton()函式來代替。
 QMessageBox megBox;
    megBox.addButton("是",QMessageBox::AcceptRole);
    megBox.addButton("否",QMessageBox::RejectRole);
    megBox.setText("退出遊戲?");
   int ret= megBox.exec();
   switch(ret){
   case QMessageBox::AcceptRole:
       this->close();
       break;
   default:
       break;
      }

如上的程式碼,其實是給它添加了一個自定義的按鈕,同時捕獲使用者單擊的按鈕返回值,這樣,就可以實現中文的按鈕啦。