自學QT之實現QMessageBox的按鈕中文顯示
阿新 • • 發佈:2019-01-29
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; }
如上的程式碼,其實是給它添加了一個自定義的按鈕,同時捕獲使用者單擊的按鈕返回值,這樣,就可以實現中文的按鈕啦。