Dass QTranslator.tr() "funktioniert" ist dem Umstand zu verdanken, dass QTranslator von QObject erbt.
PyQt4 ändert aber die Qt4-Api insoweit, dass es die statische Variante von tr() verbietet. Demnach funktioniert tr() nur, wenn es auf einem QObject aufgerufen wird. Und das sagt dir die Fehlermeldung.
Der erste Funktionsparameter ist "self", der Zeiger auf das aktuelle Objekt.
Da du tr() ja scheinbar "global" (also außerhalb einer Klasse/Methode) verwendest, bleibt dir nur die Option, ein QObject-Objekt zu erstellen, auf dem du tr() aufrufst:
Code: Alles auswählen
transObj = QObject()
fD = QFileDialog.getOpenFileName(self, transObj.tr("Open File"),"/home/stanislav","Text files (*.txt)");
Oder gleich QCoreApplication.translate() [statisch] verwenden:
Code: Alles auswählen
>>> QCoreApplication.translate("", "Hello world")
PyQt4.QtCore.QString(u'Hello world')
Wobei ich mir nicht sicher bin, ob das mit dem leeren Context-Identifier ("") funktioniert
