Seite 1 von 1
Verzeichnisansicht
Verfasst: Freitag 23. Juli 2010, 18:48
von waki
Hey,
ich bin gerade dabei ein Programm zuschreiben, mit welchem ich zugiff auf das Dateisystems übers Internet bekomme. Nun weiß aber nicht wirklich, wie ich das mit PyQt4 umsetzten kann, damit ich ein fenster, wie der explorer, habe und dort die Verzeichnisse durchforsten kann. Kann mir jemand helfen?
grüße
Re: Verzeichnisansicht
Verfasst: Freitag 23. Juli 2010, 19:08
von lunar
Verwende eine View-Klasse (z.B. QTreeView oder QListView) in Verbindung mit einem "QFileSystemModel". Damit kannst Du in wenigen Zeilen eine recht ansehnliche Verzeichnisansicht hin:
Code: Alles auswählen
>>> import sys
>>> from PyQt4.QtGui import QApplication, QFileSystemModel, QTreeView, QMainWindow
>>> app = QApplication(sys.argv)
>>> mainwindow = QMainWindow()
>>> mainwindow.setCentralWidget(QTreeView(mainwindow))
>>> model = QFileSystemModel(mainwindow.centralWidget())
>>> model.setRootPath('/')
<PyQt4.QtCore.QModelIndex object at 0x289c600>
>>> mainwindow.centralWidget().setModel(model)
>>> mainwindow.show()
Re: Verzeichnisansicht
Verfasst: Freitag 23. Juli 2010, 19:26
von waki
äh, danke schonmal, aber dein code geht bei mir nicht ^^
Bekomm ein widget hängt sich aber dan aber auf und zeigt auch nichts an

zur info, hab python 2.6 und pyqt4
Re: Verzeichnisansicht
Verfasst: Freitag 23. Juli 2010, 19:39
von cofi
Und offensichtlich Windows, verwende doch mal
Re: Verzeichnisansicht
Verfasst: Freitag 23. Juli 2010, 19:45
von waki
jop

geht immernoch nicht
€: fehler gefunden

sys.exit(app.exec_()) hat gefehlt ^^
Re: Verzeichnisansicht
Verfasst: Freitag 23. Juli 2010, 19:56
von waki
perfekt, alles was ich wollte

Nun andere Frage(ist auch bei Netzwerkprogrammierung), kann ich die angezeigten Odner steuern, also:
Kann ich sagen er soll anzeigen "laufwerk c:" und wenn ich draufklick geb ich dem die befehle was er anzeigen soll: "odner a", "odner b", "datei a", "datei b" ?
Re: Verzeichnisansicht
Verfasst: Samstag 24. Juli 2010, 15:21
von lunar
Lies die Dokumentation und experimentiere mit den verschiedenen View-Klassen. So kompliziert ist das doch nicht ...