qmessagebox按鈕變成中文,設置默認按鈕

廢話不多說,直接上源碼,裏頭列舉了實現如題功能的兩種方式:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox
from PyQt5 import QtGui

class Example(QWidget):
    def __init__(self):
        super(Example, self).__init__()

    def initUI(self):
        self.setGeometry(600,300,300,300)
        self.setWindowTitle('messagebox')
        self.show()

    # def closeEvent(self, event:QtGui.QCloseEvent):
    #     reply = QMessageBox.question(self,'提醒','確認關閉窗口?',QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
    #     if reply == QMessageBox.Yes:
    #         event.accept()
    #     else:
    #         event.ignore()

    # 實現中文方式1
    # def closeEvent(self, event:QtGui.QCloseEvent):
    #     box = QMessageBox(QMessageBox.Question, self.tr("提示"), self.tr("您確定要退出嗎?"), QMessageBox.NoButton, self)
    #     yesBtn = box.addButton('是', QMessageBox.YesRole)
    #     noBtn = box.addButton('否', QMessageBox.NoRole)
    #
    #     box.exec()
    #     if box.clickedButton() == yesBtn:
    #         event.accept()
    #     else:
    #         event.ignore()

    # 實現中文方式2
    def closeEvent(self, event:QtGui.QCloseEvent):
        box = QMessageBox(QMessageBox.Question,'提示','確認關閉?')
        box.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
        box.button(QMessageBox.Yes).setText('是')
        box.button(QMessageBox.No).setText('否')
        box.setDefaultButton(QMessageBox.No)
        reply = box.exec()
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

if __name__=='__main__':
    app = QApplication(sys.argv)
    example = Example()
    example.initUI()

    sys.exit(app.exec())

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章