argument 1 hat unerwartete Art 'Ui_mainWindow'
Ich versuche zu machen, eine GUI für ein kleines Programm, das ich schrieb mit der Hilfe von einigen Leuten hier, wie auch immer, ich machte die GUI PyQt und es sieht gut aus. Ich Hinzugefügt eine Schaltfläche namens dirButton, das sagt "Wählen Sie das Verzeichnis"
self.dirButton = QtGui.QPushButton(self.buttonWidget)
self.dirButton.setGeometry(QtCore.QRect(0, 0, 91, 61))
self.dirButton.setObjectName(_fromUtf8("dirButton"))
self.dirButton.clicked.connect(self.browse)
und in der unteren Zeile, dort habe ich den Anruf selbst.durchsuchen, wenn ich es auf, was ist:
def browse(self):
filename = QtGui.QFileDialog.getOpenFileName(self, 'Open File', '.')
fname = open(filename)
data = fname.read()
self.textEdit.setText(data)
fname.close()
Allerdings, dies ist die Fehlermeldung die ich bekomme:
Traceback (most recent call last):
File "C:\Users\Kevin\Desktop\python-tumblr-0.1\antearaGUI.py", line 88, in browse
filename = QtGui.QFileDialog.getOpenFileName(self, 'Open File', '.')
TypeError: QFileDialog.getOpenFileName(QWidget parent=None, QString caption=QString(), QString directory=QString(), QString filter=QString(), QString selectedFilter=None, QFileDialog.Options options=0): argument 1 has unexpected type 'Ui_mainWindow'
So, ui_mainWindow ist die Klasse, die alle meine GUI-buttons und die GUI selbst gespeichert ist.
class Ui_mainWindow(object):
Ich verstehe nicht, warum ich erhalte eine Fehlermeldung, hat jemand irgendwelche Ideen?
Hier ist ein pastebin link, um die gesamte GUI: http://pastebin.com/BWCcXxUW
InformationsquelleAutor Anteara | 2012-02-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
So wie ich das verstehe, sind Sie mit
Ui_mainWindow
generiert aus.ui
- Datei. Wie Sie sehen könnenUi_mainWindow
ist nur python-Klasse, die enthält widgets.getOpenFileName
erhältQWidget
- Instanz als ersten parameter. So müssen Sie UnterklasseQWidget
oderQMainWindow
und definieren die Methoden in dieser Klasse.Code wird wie folgt Aussehen:
Alternativ können Sie speichern
ui
als Instanz-Attribut:Und acces Ihre Kontrollen durch
self.ui
, z.B.:self.ui.textEdit.setText(data)
Lesen Sie tutorial über
pyuic
Nutzung PyQt durch Beispiel (Session 1)Ich habe ein script, das liest die Dateien in das Verzeichnis und dann lädt: pastebin.com/fnZN1rwS Dies ist, so kann ich hochladen jedes Foto im Verzeichnis. Allerdings, denn ich bin mit einer Klasse, ich weiß nicht, wie ich zurückkehren kann, die variabel Verzeichnis, das von der Methode durchsuchen. ich habe versucht, return-Verzeichnis, aber es nicht tun. Auch habe ich versucht zu suchen aber konnte nichts finden, was relevant ist. pastebin.com/S57DHQfF Dies ist, wo ich definieren-Verzeichnis von der browse-Methode.
Sie können definieren
def upload(self, directory):...
in der Klasse und hinzufügen von code aus dem Skript in diese Funktion. Dann inbrowse
Anruf hinzufügen, umself.upload(directory)
. Lesen Sie auch Python-tutorial - 4.6. Definition von FunktionenInformationsquelleAutor reclosedev
importieren Sie die folgenden:
In der Klasse Ui_MainWindow(Objekt), ersetzen Objekt mit QWidget:
InformationsquelleAutor Mohammad Hosein Abbasi