Wurzel Verzeichnis in QFileSystemModel anzeigen lassen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
snow
User
Beiträge: 25
Registriert: Mittwoch 4. Juli 2012, 08:52

Hi, ich habe wieder mal ein Problem mit meinem QTreeView und QFileSystemModel. Und zwar möchte ich, wenn ich dem Model und dem Tree den Pfad zum ordner a gebe, dass der Ordner a auch angezeigt wird und nicht nur sein Inhalt.Ich versuche es mal zur Verdeutlichung aufzuzeichnen:

Ich habe folgende Ordner im Laufwerk C:
-a
--file.pdf
--mov.mp4
--c
---text.txt
-b
--bla.rs

Nun übergebe ich dem Model als RootPath den Pfad zu a und mir wird dann Folgendes im QTreeView angezeigt:
-file.pdf
-mov.mp4
-c
--text.txt

Ich möchte allerdings gerne folgende Struktur haben:
-a
--file.pdf
--mov.mp4
--c
---text.txt

Ich habe es bereits mit Filtern versucht, indem ich eine Ebene höher gehe und einen nameFilter einsetze, der alles weg filtert was nicht meinem Ordner entspricht. Allerdings müssen ja auch die files, die in diesem Ordner sind, dem Filter hinzugefügt werden und wenn mal ein neues File oder ein Ordner dazukommen, müssen diese im Nachhinein auch noch dem Filter hinzugefügt werden oder? Außerdem wird mir bei meinem jetzigen Stand mit den Filtern einfach garnix mehr angezeigt. Ich habe schon gefühlte Stunden versucht irgendeinen anderen Weg aus der Doku zu ziehen, aber bisher ohne Erfolg. Ich hänge mal noch meinen derzeitigen Code hinzu:

Code: Alles auswählen

    @QtCore.Slot()
    def onOpenFolderClicked(self):
        folder = QtGui.QFileDialog.getExistingDirectory(self, 'Open Folder...',
                                                        QtGui.QDesktopServices.storageLocation(
                                                            QtGui.QDesktopServices.HomeLocation))

        currentDir = [folder]
        path = self.folderView.model.setRootPath(folder.rsplit("\\", 1)[0])
        self.folderView.setRootIndex(path)
        self.folderView.model.setFilter(QtCore.QDir.Files | QtCore.QDir.Dirs)
        self.folderView.model.setNameFilters(currentDir)
        self.folderView.model.setNameFilterDisables(False)
Wenn jemand eine Lösung weiß wär ich sehr dankbar, bin grade echt am verzweifeln, wie man das vernünftig gelöst bekommt :(
Antworten