Frage

Wie kann ich übersetzen leicht Standardtasten (Ja, Nein) aus QMessageBox? Ich kann nicht auf diese Argumente verwenden self.tr, so möchte ich es auf andere einfache Art und Weise zu erreichen. Muß ich ganzes Übersetzungssystem benutzen?

War es hilfreich?

Lösung

Hier ist, wie ich getan habe:

Zuerst müssen Sie die qt_LOCALE.qm Datei in Ihrem Anwendungsverzeichnis kopieren. Meins war:

cp /usr/share/qt4/translations/qt_fr.qm .

Zweitens müssen Sie einen Übersetzer für Ihre Anwendung laden.

application = QApplication(argv)

locale = QLocale.system().name()
qtTranslator = QTranslator()
if qtTranslator.load("qt_"+locale):
    application.installTranslator(qtTranslator)

main_window = QMainWindow()
main_window.show()

exit(application.exec_())

Andere Tipps

Sind Sie sicher, dass Sie sie selbst übersetzen haben? In anderen Toolkits werden Standard-Tasten automatisch in die Sprache übersetzt, die der Benutzer verwendet wird.

Der schnellste Weg ist so etwas wie folgt aus:

mymessagebox.button(mymessagebox.Yes).setText("Yes, please!")
mymessagebox.button(mymessagebox.No).setText("No, thanks.")

Sehen Sie die QMessageBox Dokumentation für alle möglichen Standardtasten .

Wenn Sie haben möchten Ja / Nein in die aktuelle Sprache übersetzt, in der Regel die Systemsprache einstellen sollte ausreichen. versuchen, sonst mit Natim Vorschlag.

Wenn Sie benutzerdefinierte Texte wollen: Die statischen Methoden wie Frage () usw. nicht benutzerdefinierte Schaltfläche Texte ermöglichen. Das ist schade, als „Ja“ / „Nein“ Dialoge werden als schlechter Stil (sie sind nicht beschreibend, hat man die ganze Nachricht zu lesen, und seine leicht Missverständnissen, was ja bedeutet, und was bedeutet Nein und versehentlich negiert sie). Für benutzerdefinierte Texte haben Sie QMessageBox direkt zu verwenden. Ich würde vorschlagen, dass Sie Ihre eigenen statischen Methoden zu akzeptieren optionale Taste Texte schreiben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top