Seite 1 von 1

Keine Netzwerkumgebung in QFileDialog

Verfasst: 25. November 2010 22:49
von maikelmeyers
Hallo,

weiß jemand wie es möglich ist, direkt auf die Windows Netzwerkumgebung mit einem nicht nativem QFiledialog zuzugreifen? Wie es scheint, ist das nicht so einfach.
Ich möchte ungern den nativen Filedialog benutzen, da bei diesem die Stylesheets nicht funktionieren und damit der Dialog im Gegensatz zur Applikation im hässlichen Original-Windows-Stil angezeigt wird.


Danke

Verfasst: 26. November 2010 16:22
von Troll.Soft

Code: Alles auswählen

QFileDialog Class Reference
The QFileDialog class provides a dialog that allow users to select files or directories. More...
 #include <QFileDialog>
Hm, also dieser kann es. Win XP SP3 Qt 4.7
Welchen FileDialog benutzt Du?

tschüß
Troll.Soft

Verfasst: 26. November 2010 22:16
von maikelmeyers
Troll.Soft hat geschrieben:

Code: Alles auswählen

QFileDialog Class Reference
The QFileDialog class provides a dialog that allow users to select files or directories. More...
 #include <QFileDialog>
Hm, also dieser kann es. Win XP SP3 Qt 4.7
Welchen FileDialog benutzt Du?

tschüß
Troll.Soft
Welcher kann es? Ich nutze auch Qt4.7 und ein normaler QFileDialog zeigt keine Netzwerkumgebung.

Code: Alles auswählen

QFileDialog dialog(this);
dialog.exec()
Die statische Funktion QFileDialog::getExistingDirectory benutzt Defaultmäßig einen nativen File-Dialog (On Windows and Mac OS X, this static function will use the native file dialog and not a QFileDialog. On Windows CE, if the device has no native file dialog, a QFileDialog will be used.)

Der native File-Dialog zeigt natürlich die Netzwerkumgebung an, ignoriert aber jegliche Stylesheets.

Verfasst: 26. November 2010 23:13
von Troll.Soft
Sorry,
habe etwas dazugelernt, und auch ein wenig nach diesem Thema gegoogelt. Es fanden sich nur Fragen, keine Antworten, dafür Hinweise der Art : "Ich benutze den nativen Dialog, weil der das Netzwerk kennt"
Denke das ist eindeutig, es geht nicht.
tschüß
Troll.Soft

Verfasst: 27. November 2010 09:56
von Christian81
Das stimmt.
Allerdins möchte ich das ein Programm unter Windows auch nach Windows aussieht ud nicht irgendeinen anderen Style...

Verfasst: 27. November 2010 11:06
von maikelmeyers
Christian81 hat geschrieben:Das stimmt.
Allerdins möchte ich das ein Programm unter Windows auch nach Windows aussieht ud nicht irgendeinen anderen Style...
Die Geschmäcker sind verschieden, manchmal will man eben eher, dass das Programm auf jedem System gleich aussieht. Aber um Geschmäcker gehts ja hier auch nicht. Ich wollte ja nur wissen ob jemand eine Lösung kennt.
Dann nützen aber die Stylesheets überhaupt nichts, wenn man sie nicht konsequent durch die ganze Applikation anwenden kann.
Schade irgendwie :(

Verfasst: 27. November 2010 11:22
von Christian81
Was haben jetzt stylesheets damit zu tun??
Wenn dort steht dass es der native dialog ist dann geht kein Styalesheet - wie sollte sowas auch gehen?
Und wenn ich ein Programm unter Windows hab das aussieht wie ein Alien dann ist es schonn fast untendurch...

Verfasst: 27. November 2010 11:38
von maikelmeyers
Christian81 hat geschrieben:Was haben jetzt stylesheets damit zu tun??
Wenn dort steht dass es der native dialog ist dann geht kein Styalesheet - wie sollte sowas auch gehen?
Und wenn ich ein Programm unter Windows hab das aussieht wie ein Alien dann ist es schonn fast untendurch...
Wenn Du mal meine erste Frage durchgelesen hättest, wüsstest Du um was es geht. Also hör auf hier nen Streit um Geschmäcker anzufangen. Wenn Du keine sinnvolle Antwort weißt, dann schreib doch einfach nichts.
Die Frage war, ob man bei einem nicht-nativem File-Dialog die Netzwerkumgebung angezeigt bekommen kann, sonst nichts. Wenn es keine Lösung gibt, dann hab ich eben Pech und das Thema ist beendet.

Verfasst: 27. November 2010 12:36
von franzf
maikelmeyers hat geschrieben:Die Frage war, ob man bei einem nicht-nativem File-Dialog die Netzwerkumgebung angezeigt bekommen kann, sonst nichts. Wenn es keine Lösung gibt, dann hab ich eben Pech und das Thema ist beendet.
Die Frage: ja. Aber deine Begründung enthielt nur "weil ich Stylesheets verwenden will". Und mit Stylesheets hat das hier nix zu tun:
manchmal will man eben eher, dass das Programm auf jedem System gleich aussieht.
Und das geht nur korrekt mit einem eigenen QStyle. Mit StyleSheets sitzt du ewig da, und es wird nie überall gleich ausschauen. Ich bin ehrlich gesagt absolut froh, dass unter Linux nicht jedes noch so kleine Programm ein eigenes Pixmap-basiertes Interface anschleppt. Das war das nervigste unter Windows, weil das Layout leidet, das schnelle Zurechtfinden (vor allem von nicht so IT-bewanderten oder sogar behinderten Menschen).
Vor allem die wichtige Accessibility untergräbst du komplett. Stell dir vor, du hast immense Sehschwächen, oder Probleme mit der Motorik. Du bist froh, dass dein KDE-Desktop es dir erlaubt, ein kontrastreiches Farbschema einzustellen, große Schrift, zusätzlich erlaubt dir der Style die Elementkontraste hochzustellen (Effekt: stärkerer Glow beim Button, stärkere Gradients, usw), dann kommt ein Programmierer der meint gegen den Strom schwimmen zu müssen, und alles mit Pixmaps vermatscht. Das Programm ist sofort unten durch...

Das soll jetzt kein Angriff auf deinen Geschmack sein, sondern einfach die Probleme und Grenzen von StyleSheets (in gewissem Maße auch QStyle) aufzeigen, und warum man durchaus was dagegen haben kann (sollte?).

Grüßle
Franz

Verfasst: 27. November 2010 15:28
von maikelmeyers
Das is ja wirklich nervig hier. Dass ich mir jetzt völlig ab vom Thema anhören muss, dass man keine Stylesheets benutzen sollte. Lasst das doch meine Sorge sein und schreibt bitte nur etwas, wenn das meine Frage beantworten könnte.
Vielleicht ist euch noch nicht aufgefallen, dass man Stylesheets dynamisch über ein Textfile einladen kann. Meine Software enthält dann einen Menupunkt, in dem man mehrere Styles auswählen kann UND natürlich auch wieder auf natives Erscheinungsbild switchen kann wenn man das mehr mag.
Die Tatsache ist doch: Stylesheets sind eine tolle Sache und ich möchte sie auch nutzen. Ich bin bestimmt nicht der Einzige der das will.

Ich hätte ja echt gedacht, dass es in einem Forum für Programmierung etwas niveauvoller zugeht. Aber anscheinend haben hier einige Leute nix besseres zu tun als nur Dagegen zu reden wenn ihnen keine Lösung bekannt ist. Lasst es doch einfach. Spart euch die Zeit und geht mal raus an die frische Luft.

Ich schreib jetzt ins englische Forum. Da gibts vielleicht weniger Trolls.

Verfasst: 27. November 2010 15:56
von franzf
Mit so einer aggressiven Wortwahl wirst du aber auch im englischen Forum nicht glücklich werden. Wenn es dir NUR darum geht, die Netzwerksachen reinzubekommen, hättest du die StyleSheets außen vor lassen sollen.

Und wg. StyleSheets:
Qt zeichnet Widgets selber, es verwendet keine nativen Komponenten (z.B. Buttons über WinAPI). Sie "klonen" das Aussehen der Komponenten. Der Qt-FileDialog verwendet auch brav diese Qt-Widgets, weshalb auch dort die StyleSheets ankommen. Nativer FileDialog bedeutet dann wirklich nativ, da ist kein einziges Qt-Widget involviert, alles Original-MS-Windows! Deshalb gehen dort auch keine StyleSheets. Von dem her ist dein Vorwurf "StyleSheets unsinnig, weil nicht konsequent durchgezogen" auch komplett an der Realität vorbei, dass das möglich wäre müsste nokia bei Microsoft betteln gehen.

Die Netzwerkverbindungen wirst du nur mühevoll reinbekommen. Ich wüßte nicht, wie du ohne viel Handarbeit das Zustandebekommst. Es gibt kein "MicrosoftNetworkPlaces"-Model/View/Widget. Wenn dir diese Funktionalität wichtig ist musst du den nativen Filedialog nehmen. Punkt.

Verfasst: 27. November 2010 20:30
von maikelmeyers
franzf hat geschrieben:Es gibt kein "MicrosoftNetworkPlaces"-Model/View/Widget. Wenn dir diese Funktionalität wichtig ist musst du den nativen Filedialog nehmen. Punkt.
Genau: PUNKT!
Der PUNKT war mir schon nach dem 4. Beitrag (von Troll.Soft)klar. Aber nein, man muss ja anfangen rumzudiskutieren warum ich denn mein Programm nicht nativ aussehen lasse.

Die Stylesheets habe ich doch nur als Erklärung warum ich NICHT den nativen Dialog benutzen will erwähnt, ansonsten hätten mir 100 Leute geschrieben: "Nimm den nativen Dialog, da gibts die Netzwerkumgebung."

Ich habe etwas gefragt ob etwas Bestimmtes funktioniert und eine Begründung warum ich es so funktionieren lassen will. Aber anstatt einfach nur zu antworten: "Sorry Alter, geht nicht" wird mir meine Begründung als Fehldenke angekreidet.
Dann schreibt doch bitte einfach nichts, wenn ihr nicht wisst ob und wie es geht. Aber fangt nicht an mit mir zu diskutieren warum ich das so haben will. Sowas nervt einfach.

Nichts für Ungut. Thema beendet.

Verfasst: 28. November 2010 15:54
von Troll.Soft
Schmunzel, Schmunzel :)

da wollen offenbar unbedingt zwei das letzte Wort haben. Da kann ich mithalten :)

Allerdings eher konstruktiv.

Wie man meinen Bemerkungen oben entnehmen kann, habe ich mich mit dem QFileDialog noch nicht sonderlich beschäftigt. Es gibt die statische Funktion die alles kann was ich so nebenbei brauche und gut.

Habe nun etwas dazugelernt.

In der Zukunft plane ich für mein Programm ein Aufbohren des FileDialoges. Die Netzwerkfähigkeit muß unbedingt erhalten bleiben.
Schlußfolgerung: Der native Dialog wird aufgebohrt, habe zwar keine Ahnung wie das geht, aber das läßt sich sicher rausbekommen.

Falls jemand Tips in dieser Richtung parat hat, darf er sie gerne hier abladen. Möglicherweise kann Herr Meyer sein Problem auch damit lösen.

tschüß
Troll.Soft
:)

Verfasst: 28. November 2010 20:29
von franzf
Troll.Soft hat geschrieben:da wollen offenbar unbedingt zwei das letzte Wort haben. Da kann ich mithalten :)
Weniger letztes Wort. Der Angriff auf das Niveau des Forums und der Vorwurf der Trollerei hat mich quasi dazu gezwungen, noch etwas zu schreiben :P

Und da man nicht weiß, was sein Gegenüber weiß (der sich auch überlegen sollte, was die anderen wissen können), hab ich halt nochmal versucht zu erklären, warum nativ == !StyleSheet.

Es ist doch normal, dass sich in einem Thread mal eine kleine Nebendiskussion abspaltet. Hier halt über Sinn und Unsinn von StyleSheets. Da braucht man nicht gleich so in Rage kommen. Zu einer Diskussion gehören mehrere, deshalb kann ein einzelner auch nicht verbieten über was man noch diskutiert (wenn die OT-Diskussion nicht den ganzen Thread einnimmt) - auch wenn er der OP ist.