QStandardButtons auf deutsch

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Benutzeravatar
newhippie
User
Beiträge: 13
Registriert: Freitag 2. Oktober 2009, 18:53

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.
Es kann nur ein Monopol geben: Linux.
franzf
User
Beiträge: 78
Registriert: Samstag 29. August 2009, 10:21

Das geht, indem du den passenden Translator ladest. Gabs erst kürzlich hier:
http://www.python-forum.de/post-146879.html#146879
Benutzeravatar
newhippie
User
Beiträge: 13
Registriert: Freitag 2. Oktober 2009, 18:53

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
Es kann nur ein Monopol geben: Linux.
franzf
User
Beiträge: 78
Registriert: Samstag 29. August 2009, 10:21

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.
Benutzeravatar
newhippie
User
Beiträge: 13
Registriert: Freitag 2. Oktober 2009, 18:53

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?
Es kann nur ein Monopol geben: Linux.
franzf
User
Beiträge: 78
Registriert: Samstag 29. August 2009, 10:21

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 :P
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.
Benutzeravatar
newhippie
User
Beiträge: 13
Registriert: Freitag 2. Oktober 2009, 18:53

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.
Es kann nur ein Monopol geben: Linux.
Antworten