Форум сайта python.su
Добрый день товарищи программисты!
Задался таким вопросом: Как можно изменить текст на абстрактных кнопках (QtGui.QMessageBox.Yes, QtGui.QMessageBox.No, QtGui.QMessageBox.Cancel). Хочу чтобы надписи были русскими, т.к. не все конечные пользователи знают что такое Cancel
Вот например у меня задается вопрос пользователю, соответственно окошко выдается сразу, т.е. к нему какие-либо методы применить не получается.
reply = QtGui.QMessageBox.question(self, u"Вопрос", u"Вы уверены?", QtGui.QMessageBox.Yes | QtGui.QMessageBox.No | QtGui.QMessageBox.Cancel)
Офлайн
Я примерно так переводил:
dirdialog = QtGui.QFileDialog(self) dirdialog.setLabelText(dirdialog.LookIn, u"Текущий Каталог") dirdialog.setLabelText(dirdialog.FileName, u"Каталог") dirdialog.setLabelText(dirdialog.FileType, u"Тип Файла") dirdialog.setLabelText(dirdialog.Accept, u"Выбрать") dirdialog.setLabelText(dirdialog.Reject, u"Отмена") if dirdialog.exec_(): return os.path.abspath(unicode(dirdialog.selectedFiles()[0])).replace("//","/")+"/" else: return ""
Отредактировано Rodegast (Апрель 24, 2013 19:09:39)
Офлайн
Чтобы любой текст добавить:
http://www.qtcentre.org/threads/28739-QMessageBox-Text-in-the-buttons
Если просто нужны кнопки на русском во всех стандартных диалогах, нужно добавить файл локализации
\Python\Lib\site-packages\PyQt4\translations\qt_ru.qm
и загружать его с помощью QTranslator
Офлайн
RodegastСпасибо, возьму на заметку такой способ. Но помимо этих кнопок есть еще стандартные меню и т.д.
Я примерно так переводил:
reclosedevА вот это уже интереснее, спасибо!
Чтобы любой текст добавить:http://www.qtcentre.org/threads/28739-QMessageBox-Text-in-the-buttonsЕсли просто нужны кнопки на русском во всех стандартных диалогах, нужно добавить файл локализации\Python\Lib\site-packages\PyQt4\translations\qt_ru.qmи загружать его с помощью QTranslator
Офлайн
reclosedevА, я понял походу:
загружать его с помощью QTranslator
if __name__ == '__main__': app = QtGui.QApplication(sys.argv) translator = QTranslator() translator.load(u'qt_ru', u'C:\Python27\Lib\site-packages\PyQt4\translations') #как я понял, расширение файла (.qm) Qt сам добавит? app.installTranslator(translator) window = MainWindow() window.show() sys.exit(app.exec_())
Отредактировано wizard_master (Апрель 25, 2013 08:22:27)
Офлайн
Обратные слэши в путях Win до добра не доводят
In [1]: print u'C:\Python27\Lib\site-packages\PyQt4\translations' C:\Python27\Lib\site-packages\PyQt4 ranslations
ur'C:\Python27\Lib\site-packages\PyQt4\translations'
Офлайн
reclosedevСпасибо огромное!!! Все получилось
Обратные слэши в путях Win до добра не доводят
if __name__ == '__main__': app = QtGui.QApplication(sys.argv) translator = QTranslator() #скопировал qt_ru.qm себе в папку со своим скриптом в подпапку lib. В пути использовать прямые слэши! #qt_ru.qm брал из C:\Python27\Lib\site-packages\PyQt4\translations\ translator.load(u'qt_ru', u'./lib/') #расширение файла (.qm) Qt сам добавит. app.installTranslator(translator) settingsWindow = SettingsWindow() settingsWindow.show() sys.exit(app.exec_())
Отредактировано wizard_master (Апрель 25, 2013 08:55:55)
Офлайн