Поменять название кнопки в QMessageBox

result = QtWidgets.QMessageBox.question\
        (self, "Выход","Вы действительно хотите выйти?",
         QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No,
         QtWidgets.QMessageBox.No)

В таком виде кнопки выводятся на английском языке, мне нужно чтобы были на русском, а переименовать стандартные кнопки нельзя. Как это сделать?


Ответы (1 шт):

Автор решения: S. Nick

Попробуйте так:

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

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Message box')

    def closeEvent(self, event):
        msg = QMessageBox(self)
        msg.setWindowIcon(QIcon("im.png"))
        msg.setWindowTitle("Выход")
        msg.setIcon(QMessageBox.Question)
        msg.setText("Вы действительно хотите выйти ?")

        buttonAceptar  = msg.addButton("Да хочу", QMessageBox.YesRole)    
        buttonCancelar = msg.addButton("Отменить", QMessageBox.RejectRole) 
        msg.setDefaultButton(buttonAceptar)
        msg.exec_()

        if msg.clickedButton() == buttonAceptar:
            event.accept()
        elif msg.clickedButton() == buttonCancelar:
            event.ignore()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())

введите сюда описание изображения

→ Ссылка