Не сохраняется локализация pyqt6

Использовал следующий код:

main.py

import sys
import locale

from PySide6 import QtCore

from PySide6.QtWidgets import QApplication, QWidget, QMessageBox


from mainwindow import MainWindow

if __name__ == '__main__':
    app=QApplication(sys.argv)
    window=MainWindow()
    
    translator = QtCore.QTranslator(app)
    locale = QtCore.QLocale.system().name()
    path = QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.TranslationsPath)
    translator.load('qt_%s' % locale, path)
    app.installTranslator(translator)
    
    window.show()

    sys.exit(app.exec())

    

mainwindow.py

from PySide6.QtWidgets import QMainWindow, QDialogButtonBox, QMessageBox
from base_ui.ui_mainwindow import Ui_MainWindow

class MainWindow(QMainWindow):

        def __init__ (self):
            super(MainWindow, self).__init__()
            self.ui=Ui_MainWindow()
            self.ui.setupUi(self)
            self.ui.buttonBox.button(QDialogButtonBox.Ok).setText("пуш ми")
            self.ui.buttonBox.button(QDialogButtonBox.Ok).clicked.connect(self.clear_area_f)
           
        def clear_area_f(self, event): 
            reply = QMessageBox.question(self,'Предупреждение',"Вы действительно хотите нажать?", QMessageBox.Yes, QMessageBox.No)
            if reply == 16384: # кнопка ОК. Как по другому?
                print("да")
            elif reply == 65536:
                print("неда")

ui_mainwindow.py

from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
    QMetaObject, QObject, QPoint, QRect,
    QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
    QFont, QFontDatabase, QGradient, QIcon,
    QImage, QKeySequence, QLinearGradient, QPainter,
    QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QAbstractButton, QApplication, QDialogButtonBox, QSizePolicy,
    QVBoxLayout, QWidget)

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(273, 42)
        sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        self.verticalLayout = QVBoxLayout(MainWindow)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.buttonBox = QDialogButtonBox(MainWindow)
        self.buttonBox.setObjectName(u"buttonBox")
        sizePolicy1 = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Fixed)
        sizePolicy1.setHorizontalStretch(0)
        sizePolicy1.setVerticalStretch(0)
        sizePolicy1.setHeightForWidth(self.buttonBox.sizePolicy().hasHeightForWidth())
        self.buttonBox.setSizePolicy(sizePolicy1)
        self.buttonBox.setMinimumSize(QSize(300, 0))
        self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok|QDialogButtonBox.RestoreDefaults)

        self.verticalLayout.addWidget(self.buttonBox)


        self.retranslateUi(MainWindow)

        QMetaObject.connectSlotsByName(MainWindow)
    # setupUi

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"Window", None))
    # retranslateUi

Класс MainWindow имеет в себе стандартный объект QDialogButtonBox, при нажатии на одну из кнопок которого вызывается объект QMessageBox

При запуске кода из питона все работает как надо, но при открытии скомпилированного через Pyinstaller файла все стандартные кнопки на английском языке.

Открывал на нескольких ПК. Пробовал заменить текст на кнопках. Получилось это сделать только в QDialogButtonBox. QMessageBox же возвращает int и обратиться к нему для установки текста не получается.

В чем может быть дело? Куда копнуть? Что проверить?

Также использовал нестандартный шрифт. При открытии скомпилированного файла на другом ПК шрифт используется другой. Понимаю, что это скорее всего неизбежно, так как этот шрифт там не установлен.
Но всё равно упомяну, вдруг есть какой-нибудь способ сохранить данные о шрифте в файл.


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