Seite 1 von 1
SHBrowseForFolder in Qt?
Verfasst: 20. September 2007 11:00
von Bagstone
Hallo,
ich brauche für das Öffnen bzw. Speichern eines Projektes eine Ordner-Auswahl-Funktion. Momentan habe ich QFileDialog mit allen Einstellungen, so dass ich dort nur Verzeichnisse sehe usw.
Allerdings wäre der "SHBrowseForFolder"-Dialog, den es unter Windows gibt, perfekt, er ist für die Auswahl nur eines Verzeichnis einfach besser.
Hat jemand schonmal so etwas programmiert bzw. gibt es so etwas in Qt?
Das ganze selbst programmieren würde wahrscheinlich meinen Qt-Horizont übersteigen...
Verfasst: 20. September 2007 11:03
von Christian81
Verfasst: 20. September 2007 11:18
von Bagstone
Erstmal vielen Dank für die unglaublich prompte Antwort! Nicht schlecht, das ist rekordverdächtig.
Auch wenn ich nicht diese static function benutze, so habe ich mit Filter etc. den QFileDialog eben so eingestellt, dass er sich genau so verhält.
Was ich suche ist aber eben so eine Ansicht:

Verfasst: 20. September 2007 11:25
von Christian81
Wenn Du nicht die static-Funktion benutzen willst geht es nicht. Nur in dieser Funktion wird ShBrowseForFolder unter Windows aufgerufen.
Verfasst: 20. September 2007 11:32
von Bagstone
Hm ok, also werde ich mir so ein Ding für Linux selbst coden müssen.
Irgendwelche Ansätze?
Mich wundert das so etwas noch niemand erstellt hat. Oder geht das garnicht?
Verfasst: 20. September 2007 11:36
von Christian81
Schonmal geschaut wie der Dialog unter Linux aussieht? Ggf. hat Trolltech den ja nachempfunden...
Verfasst: 20. September 2007 11:48
von Bagstone
Hab's grad mal ausprobiert.
Das ist 1:1 der Gleiche wie für die Dateiauswahl, außer dass man nur Verzeichnisse sieht und nur Verzeichnisse auswählen kann (unten steht auch im Filter zur Auswahl der Dateiendung "Directory"). Wie gesagt, wenn man sich mit Filter einen QFileDialog so einstellt, ist es unter Linux das Gleiche wie die static function.
Es fühlt sich halt komisch an. Mein Chef ist absoluter Linux-Fan und benutzt fast nie Windows, aber er selbst erwähnte dass dieser Verzeichnisauswahldialog unter Windows einfach besser ist. Sieht man ja auch, mehr als man da an Optionen hat braucht man nicht.
Ich überlege, nach diesem Beispiel hier:
http://doc.trolltech.com/4.3/itemviews-dirview.html
das ganze selbst zu schreiben. Fehlt halt im Falle vom Speichern-Dialog noch eine "create dir" Funktion, das wars. Mehr als ein Verzeichnis zurückgeben brauch ich ja eigentlich nicht...
Verfasst: 20. September 2007 18:55
von Bagstone
Habs mir selbst gebastelt, funktioniert wider Erwarten problemlos, und hat garnicht so viel Arbeit gekostet wie befürchtet.
Wenn jemand interessiert ist kann ich's ja mal hochladen.
Verfasst: 20. September 2007 19:11
von Christian81
Das wäre nett
Verfasst: 20. September 2007 19:42
von Bagstone
Header-Datei
Cpp-Datei
Hoffe mal das läuft so alles, hab's in meinem Projekt von der Arbeit gebaut (daher auch der komische Klassenname).
Und macht halt genau das was ich will, nicht mehr nicht weniger

Viel Spaß damit.
¤dit: Feedback erwünscht!
Verfasst: 20. September 2007 23:56
von Bagstone
Hm, noch ein bischen "extended" und verbessert.
Cpp-Datei
Header-Datei
Icon für "Create new folder":

(Als folder_new.png im Sourcecode-Verzeichnis speichern)
Hier mal das Ding in Aktion mit vollem Umfang:
Textlabel oben und unten (außer currentPath, aber kann man ja umbauen) sowie Filter und der New-directory button sind optional, einfach beim Konstruktoraufruf setzen. Der Ok-Button ist nur klickbar wenn der Filter aufs Verzeichnis zutrifft. Noch nicht perfekt aber mir reichts für heute

Verfasst: 21. September 2007 07:32
von macman
Das ist ja ganz toll, aber wie lange funktionieren die Links? Du solltest es unter Snippets, Tipps & Tricks ablegen und nicht irgendwo im www.
Verfasst: 21. September 2007 07:51
von Christian81
@Bagstone: macman hat recht. Packe es als zip und Lade es im Forum hoch, am besten einen neuen Thread im Unterforum 'Snippets, Tipps & Tricks'
Verfasst: 21. September 2007 08:05
von Bagstone
Kriege bei dem Attachment-Formular immer den Fehler:
Upload Error: Kann das Attachment ./files/qt_shbrowseforfolderdialog_513.zip nicht hochladen.
Verfasst: 21. September 2007 08:13
von Christian81
Schick es mir, ich schau mal -> ch dot ehrlicher add gmx dot de