Seite 1 von 1

QFileDialog unter openSuse 11.3

Verfasst: 6. Januar 2011 16:17
von saar
Hallo,

In meiner App möchte ich den QFileDialog mit "Details" öffnen. Ferner sollen als zulässige Dateiformate zip (*.zip) sowie hrd (*.hrd) angeboten werden. Im ini-File der App steht das *.hrd als zuletzt verwendetes Format und dieses soll auch bei einem erneuten Start angezeigt werden.

Dabei erhalte ich folgende Probleme, wenn ich das Programm direkt an der XWindows Konsole laufen lasse:
1. Die Details werden nicht angezeigt. Erst nachdem ich ich im File Dialog auf die Details-Ansicht klicke, wird diese aktiviert. Sie bleibt danach auch für weitere Programmaufrufe aktiviert.

2. Als aktuelles Format wird nicht wie gewünscht hrd angezeigt sondern zip, welches als erstes in der Filterliste steht.

Starte ich das gleiche Programm remote von meinem Notebook über den XWin Server, funktioniert alles wie erwartet. Hier wird scheinbar der Windows-FileDialog zur Darstellung benutzt. Auch wenn ich die App unter Windows kompiliere und ausführe ist alles ok.

Ich habe unten mal ein Minimalbeispiel angehängt, mit dem sich das Verhalten (zumindest bei mir) reproduzieren lässt.

Ich benutze Qt 4.7.

Im Voraus schon mal vielen Dank für Lösungshinweise.
Gruß
Saar

Verfasst: 6. Januar 2011 18:13
von solarix
Das einzige, was mit dazu einfällt (ich arbeite nicht mit OpenSuse) ist, dass Qt per Default den nativen Dialog des Betriebsystems einsetzt und daher das Verhalten durchaus unterschiedlich sein kann..

Hast du mal versucht, den Qt-eigenen Dialog zu verwenden? In deinem Beispiel so ungefähr:

Code: Alles auswählen

  
  // zu den alten Optionen noch "DontUseNativeDialog" setzen:
  // siehe http://doc.trolltech.com/latest/qfiledialog.html#Option-enum
  fd.setOptions(fd.options() | QFileDialog::DontUseNativeDialog);
  ..

hth..

Verfasst: 6. Januar 2011 18:31
von saar
Danke solarix,

das ist des Rätsels Lösung. Jetzt kommt der Dialog wie erwartet.

Gruß
saar