QFileDialog und Layout

Alles rund um die Programmierung mit Qt
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

QFileDialog und Layout

Beitrag von Sym »

Hallo,

Ich nutze die statische Methode

Code: Alles auswählen

QFileDialog::getSaveFileName(this, 
    "Choose a filename to save under", ".", 
    "Datasheets (*.xml)");
um Dateien abzuspeichern. Meine Anwendung genießt den Plastique-Style. Der Filedialog übernimmt den Style leider nicht. Kann man sie irgendwie ändern?
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Unter Windows?
Nicht über die statische Methode gehen.
Unter Linux?
Macht er es doch eh.
Unter Mac?
Siehe Windows
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

Ja unter Windows und Mac ;)

Ok, dann muss ich das wohl zu Fuß erledigen. :(

Danke für die schnelle Antwort.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Sym hat geschrieben:Ja unter Windows und Mac ;)
Benutze auf den Mac den Aqua-Style oder lass es gleich bleiben. Mac-User sind nicht so tolerant, was das Aussehen angeht :-)
Wenn es nicht dem Standard entspricht, geht es gleich in die Tonne.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Verstehe nicht, warum ein standard windows Dialog mit nem anderem Style aufgehen sollte, als wie es im BS eingestellt ist. Aber das ist sicher ne zutiefst philosophische frage ^^
In der Hinsicht bin ich sicher wie ein typischer mac User ^^
Nen programm ignoriert mir die systemeinstellungen und macht standarddialoge im eigenen look auf -> Muelltonne ^^

Ciao ...
motualf
Beiträge: 4
Registriert: 14. September 2006 11:26

Beitrag von motualf »

D.h., wenn ich das richtig verstehe, kann das Aussehen von QDialogen (und damit meine ich auch Fensterrahmen und Titlebar) nicht über einen QStyle verändert werden, sondern wird immer über das Window-Handling des Betriebssystem gezeichnet ?!
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Klar kannst Du den Style eines QDialogs ändern, aber lies mal die Doku zu den statischen Methoden, da steht:
Under Windows and Mac OS X, this static function will use the native file dialog and not a QFileDialog.
Das ist also gar kein QDialog, also gibt es auch nichts zu ändern.
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

RHBaum hat geschrieben:Verstehe nicht, warum ein standard windows Dialog mit nem anderem Style aufgehen sollte, als wie es im BS eingestellt ist. Aber das ist sicher ne zutiefst philosophische frage ^^
In der Hinsicht bin ich sicher wie ein typischer mac User ^^
Nen programm ignoriert mir die systemeinstellungen und macht standarddialoge im eigenen look auf -> Muelltonne ^^

Ciao ...
Wenn ich für mein Programm einen eigenen Style habe, wäre das ein Bruch, den FileChooser nich anzupassen!

Und bitte was heißt Standarddialog?
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

macman hat geschrieben:
Sym hat geschrieben:Ja unter Windows und Mac ;)
Benutze auf den Mac den Aqua-Style oder lass es gleich bleiben. Mac-User sind nicht so tolerant, was das Aussehen angeht :-)
Wenn es nicht dem Standard entspricht, geht es gleich in die Tonne.
Es kommt immer auf das Programm an. ;) VLC und Adium zum Beispiel...
Goos
Beiträge: 360
Registriert: 17. August 2004 10:10
Wohnort: Black Forest

Beitrag von Goos »

Sym hat geschrieben: Und bitte was heißt Standarddialog?
Das heisst dass es einen standardisierten Dialog fuer das Oeffnen von Dateien unter Windows gibt und du diesen ueber die statische Methode
QFileDialog::getSaveFileName aufrufst. Wenn du die statische Methode nicht benutzt, dann erhaelst auch keinen Standarddialog.

Goos
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Sym hat geschrieben:Es kommt immer auf das Programm an. ;) VLC und Adium zum Beispiel...
Mist, jetzt hab ich ganz vergessen gestern danach zu schauen :-) Bin mir aber ziemlich sicher das zumindest VLC den Standarddialog zur Fileauswahl benutzt. Es braucht schon gute Gründe einen eigenen zu bauen, eine eigene Vorschau z.B. Ein eigener Style gehört IMHO nicht dazu.
motualf
Beiträge: 4
Registriert: 14. September 2006 11:26

Beitrag von motualf »

Abseits von verschiedenen Philosophien, ob Standarddialoge proprietär gestylt werden sollten oder nicht, ist mir immer noch nicht ganz klar, wie ich beispielsweise die Decoration von top-level windows mit einem eigenen Style ausstatten kann. Nach meinen bisherigen Recherchen geht das gar nicht. Oder weiß da jemand was anderes? :?:
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Hab mit Styles noch ned so viel gemacht .... (finde programme doof die nen anderen style haben als wie das BS vorgibt ^^)

aber QT 4.1:
fuer einzelne fenster:
void QWidget::setStyle ( QStyle * style )
Sets the widget's GUI style to style. Ownership of the style object is not transferred.
If no style is set, the widget uses the application's style, QApplication::style() instead.
Setting a widget's style has no effect on existing or future child widgets.

Falls man alle fenster initial mit nem neuen style versehen will:
void QApplication::setStyle ( QStyle * style ) [static]
Sets the application's GUI style to style. Ownership of the style object is transferred to QApplication, so QApplication will delete the style object on application exit or when a new style is set.
Warning: To ensure that the application's style is set correctly, it is best to call this function before the QApplication constructor, if possible.
Example usage:
QApplication::setStyle(new QWindowsStyle);
When switching application styles, the color palette is set back to the initial colors or the system defaults. This is necessary since certain styles have to adapt the color palette to be fully style-guide compliant.
Note that setting the style before a palette has been set (i.e. before creating QApplication) will cause the application to use QStyle::standardPalette() for the palette.


schon mal probiert ?

ciao ...
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

macman hat geschrieben:
Sym hat geschrieben:Es kommt immer auf das Programm an. ;) VLC und Adium zum Beispiel...
Mist, jetzt hab ich ganz vergessen gestern danach zu schauen :-) Bin mir aber ziemlich sicher das zumindest VLC den Standarddialog zur Fileauswahl benutzt. Es braucht schon gute Gründe einen eigenen zu bauen, eine eigene Vorschau z.B. Ein eigener Style gehört IMHO nicht dazu.
Hmm, ich meine, VLC nutzt dafür einen eigenen Theme. Aber vielleicht trügt mich da mein Gehirn. ;) Aber ich hatte Dich auch so verstanden, dass Deine Aussage nicht nur auf den FileManager, sondern auf das ganze Produkt geziehlt hat.

Es geht ja nicht darum, den FileManager mit einer anderen Funktionalität zu belegen. Aber wenn ich für mein Programm ein eigenen Style habe wirkt es unschön, einen Bruch durch den FileManager zu erzeugen.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Sym hat geschrieben:Hmm, ich meine, VLC nutzt dafür einen eigenen Theme. Aber vielleicht trügt mich da mein Gehirn. ;)
Tut es :-) Auch Adium sieht durch und durch nach einem Mac-Programm aus. Habe nichts gefunden, was den AHIG widersprechen würde, ohne jetzt alles nach zu messen.
Sym hat geschrieben:Aber ich hatte Dich auch so verstanden, dass Deine Aussage nicht nur auf den FileManager, sondern auf das ganze Produkt geziehlt hat.
Das ist korrekt. Ich gehöre halt zu denen, die es als negativ empfinden, wenn in einem Programm z.B. die Slider anders aussehen. Leider gibt es inzwischen viele Programme, die ihre eigene Brötchen backen. Selbst Apple fängt damit an, siehe die Slider in iTunes 7.

Womit man eben könnte, wäre die Möglichkeit den Style im Programm zu ändern. So wie in Firefox z.B.
Antworten