2016-07-07 6 views
0

Ich verwende PyQT und habe bereits die Klasse für meine GUI instanziiert. Ich versuche, den Verlauf der in meiner GUI geöffneten Dateien zu finden.TypeError: QFileDialog.history (self): das erste Argument der ungebundenen Methode muss den Typ 'QFileDialog' haben

def plotButtonClicked(self): 
    lst = QFileDialog.history(self) 

die oben def wird durch eine andere Funktion aufgerufen, die die gesamte GUI erstellt. Ich erhalte den folgenden Fehler:

TypeError: QFileDialog.history(): first argument of unbound method must have type 'QFileDialog' 

Lustige Sache ist, ich habe die QFileDialog in anderen Funktionen im Einsatz. Hier ist ein Beispiel, wo es funktioniert:

fname = QFileDialog.getOpenFileName(self, 'Open File') 

Warum ist nicht die history() Methode funktioniert nicht?

Antwort

1

QFileDialog.history ist kein Class (auch statische Funktion in C++ bezeichnet). Damit Sie die Methode aufrufen können, müssen Sie entweder die Klasse als erstes Argument übergeben (wie der Fehler sagt) oder QFileDialog instanziieren, bevor Sie die Methode aufrufen.

Der Grund, warum QFileDialog.getOpenFileName Werke sind, weil es ein Class (statische Methode) ist, und wie die Doc sagt, es ist ein convenience static function.

+0

Danke. Das hilft sehr. – ragzputin

Verwandte Themen