Seite 1 von 1
QStandardButtons auf deutsch
Verfasst: Sonntag 4. Oktober 2009, 11:55
von newhippie
Hallo, die Frage hat zwar wenig mit Python an sich zu tun, aber ich würde gerne wissen, und denke, dass viele dieses Problem schon gelöst haben, wie man die Standard Buttons von Qt auf eine bestimmte Sprache, in meinem Fall Deutsch, einstellen kann.
Derzeit werden diese mit "Save" "Cancel" usw beschriftet.
Wäre dankbar für jede Hilfe.
Verfasst: Sonntag 4. Oktober 2009, 12:00
von franzf
Das geht, indem du den passenden Translator ladest. Gabs erst kürzlich hier:
http://www.python-forum.de/post-146879.html#146879
Verfasst: Sonntag 4. Oktober 2009, 12:11
von newhippie
Danke für die rasche Antwort.
na an sich ist es genau das, was ich geucht habe, aber irgendwie kann er LibraryInfo nicht finden und meldet nen Fehler.
Was muss ich auso außer QTranslator noch importieren ?
PS: Wenn es nicht zu viel Zeit nimmt, könnte jemand die paar Zeilen hier mit anfügen, wie ich die MessageBox auf deutsch starte. (Bin grade in Python eingestiegen und arbeite an der ersten Anwendung).
Danke
Verfasst: Sonntag 4. Oktober 2009, 12:15
von franzf
newhippie hat geschrieben:na an sich ist es genau das, was ich geucht habe, aber irgendwie kann er LibraryInfo nicht finden und meldet nen Fehler.
Sry, war ein doofer Editierfehler. Das heißt "QLibraryInfo". Irgendwie hab ich das Q weggeschnippselt...
Ich besser das mal in dem anderen Thread aus.
Verfasst: Sonntag 4. Oktober 2009, 12:19
von newhippie
Code: Alles auswählen
msg = QMessageBox()
trans = QTranslator()
trans.load( "qt_de", QLibraryInfo.location(QLibraryInfo.TranslationsPath) )
msg.installTranslator(trans)
so habe ich es jetzt, aber irgendwie funkt es noch nicht.
Liegt es vielleicht daran, dass ich die MessageBox aus einer Funktion aus aufrufe und nicht von __init__ aus?
Verfasst: Sonntag 4. Oktober 2009, 12:28
von franzf
Prinzipiell wäre es nicht schlecht anstatt "funktioniert irgendwie nicht" genau zu schreiben, was du erwartest, was passiert und vor allem welche Fehlermeldung du (in jenem Falle) erhältst.
In diesem Fall ist es recht simpel. Doku zu Translations lesen

Aber da ich jetzt meine gute 1/4Stunde hab:
QMessageBox kennt kein installTranslator!!! installTranslator ist ne Methode von QCoreApplication. Du willst ja nicht diese eine MessageBox auf Deutsch haben, sondern alle MessageBoxen, FileDialogs, usw. in deinem Programm.
Das machst du prinzipiell an höchster Instanz. In C++ wäre das die main()-Funktion, in Python ist es dein Hauptscript, und zwar an der Stelle wo du auch deine QApplication-Instanz erstellt. Wenn du dynamisch zur Laufzeit eine Sprachänderung einbauen willst musst du das verfreilich in eine Methode deiner (z.B.) MainWindow-Klasse auslagern.
Verfasst: Sonntag 4. Oktober 2009, 12:37
von newhippie
Hallo, danke dir, ich habe es schon vermutet, dass die Sprache für das ganze Programm gesetzt werden muss.
Jetzt geht alles perfekt.
Die Doku habe ich mir augeschaut, aber da ich Englisch nicht so behersche, habe ich es nicht gut verstehen können, was die dort schreiben.
und die Fehlermeldungen gebe ich beim nächsten Mal an.
Danke für die Hilfe, werde mich wohl bald wegen was anderem auf dem Forum melden müssen.
Gerade versuche ich, eine txt Datei über OpenDialog zu öffnen.