SHBrowseForFolder in Qt?

Alles rund um die Programmierung mit Qt
Antworten
Bagstone
Beiträge: 31
Registriert: 20. September 2007 10:55

SHBrowseForFolder in Qt?

Beitrag 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...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Bagstone
Beiträge: 31
Registriert: 20. September 2007 10:55

Beitrag 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:
Bild
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wenn Du nicht die static-Funktion benutzen willst geht es nicht. Nur in dieser Funktion wird ShBrowseForFolder unter Windows aufgerufen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Bagstone
Beiträge: 31
Registriert: 20. September 2007 10:55

Beitrag 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?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Schonmal geschaut wie der Dialog unter Linux aussieht? Ggf. hat Trolltech den ja nachempfunden...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Bagstone
Beiträge: 31
Registriert: 20. September 2007 10:55

Beitrag 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...
Bagstone
Beiträge: 31
Registriert: 20. September 2007 10:55

Beitrag 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.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Das wäre nett
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Bagstone
Beiträge: 31
Registriert: 20. September 2007 10:55

Beitrag 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!
Bagstone
Beiträge: 31
Registriert: 20. September 2007 10:55

Beitrag von Bagstone »

Hm, noch ein bischen "extended" und verbessert.

Cpp-Datei
Header-Datei

Icon für "Create new folder":
Bild
(Als folder_new.png im Sourcecode-Verzeichnis speichern)



Hier mal das Ding in Aktion mit vollem Umfang:
Bild

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 ;-)
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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'
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Bagstone
Beiträge: 31
Registriert: 20. September 2007 10:55

Beitrag von Bagstone »

Kriege bei dem Attachment-Formular immer den Fehler:
Upload Error: Kann das Attachment ./files/qt_shbrowseforfolderdialog_513.zip nicht hochladen.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Schick es mir, ich schau mal -> ch dot ehrlicher add gmx dot de
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten