Seite 1 von 1

Diverse Fragen zu QStyleSheets

Verfasst: 22. April 2010 11:41
von Paddre
Moinmoin.

Ich muss mich auf der Arbeit die naechste Zeit verstaerkt mit QStyleSheets auseinandersetzen. Da dort noch einige Fragen aufkommen werden habe ich den thread erstellt.

Erste Frage:
Wie komme ich an das Contextmenue ran?
Ich wuerde gerne z.B.: das Highlighting der Eintraege ueber denen sich die Maus befindet usw. veraendern. Hab in der Hilfe dazu nix gefunden. Geht das ueberhaupt mit Stylesheets?

Gruss
Patrick

Verfasst: 22. April 2010 13:12
von Paddre
Sorry fuer Doppelpost aber ich habe eine weitere Frage:

Wie kann ich eine Combobox per Stylesheet auf ein normales Aussehen konfigurieren (Weisses Feld, Grauer down-button, schwarzer Pfeil auf dem Button)?
Ich weiss wie ich an das Feld rankomme, ich weiss wie ich an den Button rankomme, was mir fehlt ist eine Moeglichkeit den Pfeil schwarz zu faerben, ohne, dass man ein fettes schwarzes Quadrat innerhalb des Buttons hat.

Ich weiss, dass die ComboBox standardmaessig so eingestellt ist, da ich aber mit verschiedenen Farben (abhaengig von Tageszeit) arbeite muss ich wissen wie ich die Elemente konfigurieren kann.

Verfasst: 22. April 2010 14:03
von archer
Schau dir doch mal die Beispiele in der StyleSheet-Dokumentation an.

Verfasst: 22. April 2010 14:34
von Paddre
Ich finde in den Beispielen aber nichts zu dem PopupMenue-Problem.

Ausserdem weiss ich dadurch nach wie vor nicht, wie ich das hinbekomme, dass ich keine schwarze Box statt des Pfeils bekomme. Wenn man den Button veraendert sieht man den Pfeil nicht mehr und wenn man dann den Pfeil explizit auf schwarz setzt (mit background: black), dann hat man innerhalb des Buttons ein kleines schwarzes Quadrat.

Verfasst: 22. April 2010 14:39
von franzf
Paddre hat geschrieben:Ausserdem weiss ich dadurch nach wie vor nicht, wie ich das hinbekomme, dass ich keine schwarze Box statt des Pfeils bekomme. Wenn man den Button veraendert sieht man den Pfeil nicht mehr und wenn man dann den Pfeil explizit auf schwarz setzt (mit background: black), dann hat man innerhalb des Buttons ein kleines schwarzes Quadrat.
Das ist aber jetzt eine Verallgemeinerung. Und ohne dem aktuell gesetzten StyleSheet kann man auch schwer sagen was du falsch/richtig machst.

Und ein PopupMenu ist eigentlich ein QMenu, mit dem jeweiligen Widget als parent (hoffentlich...).
In der Doku findest du auch für diese Konstellation eine Möglichkeit das Menu auszuwählen (Stichwort "Selector Types").

Verfasst: 22. April 2010 14:53
von Paddre
Der Code fuer die ComboBoxen ist folgender:

Code: Alles auswählen

QComboBox
{
	background: white;
}

QComboBox::drop-down 
{
	background: palette(button);
}

QComboBox::down-arrow
{
	//tja was nun? "background: black;" erzeugt einen schwarzen Kasten
}
Der Tipp mit dem QMenu hat mir gefehlt :) Was ich noch nicht rausgefunden habe ist, wie ich es hinbekomme, dass disablete Menueeintraege nicht gehighlightet werden wenn die Maus drueber faehrt

Der Code:
QMenu::item:selected:disabled
{
background: none;
}
Werd mich damit ansonsten morgen frueh nochmal befassen. Fuer Tipps bin ich in der Zwischenzeit trotzdem dankbar ^^

Verfasst: 23. April 2010 10:16
von Paddre
Das mit den deaktivierten Items habe ich hinbekommen.

Aber mit der ComboBox komme ich nicht wirklich voran. Bzw. gar nicht!

Ein Aehnliches problem zeigt sich auch bei der Konfiguration von Checkboxes und RadioButtons. Also entweder habe ich da eine bestimmte Sache noch nicht verstanden, ode rew ist nicht moeglich die 3 Elemente so zu gestalten wie ich es moechte (denke eher ersteres ^^)

Das ist nun mein Code (die Farbe #FFF123 ist nur ein Platzhalter fuer eine bestimmte andere Farbe):

Code: Alles auswählen

QCheckBox::indicator
{
	background: #FFF123;
}

QRadioButton::indicator
{
	background: #FFF123;
}

QComboBox
{
	background: #FFF123;
}

QComboBox::drop-down 
{
	background: palette(button);
}

QMenu::item:selected:disabled
{
	background: palette(button);
}

QMenu::item:selected
{
	background: none;
}
Was passiert ist, dass man bei Radiobuttons ein gelbes Quadrat statt eines gelben Kreises hat. Bei den Radiobuttons und bei den Checkboxen kann man ausserdem nicht mehr den Haken bxw den Punkt sehen. Der Stylesheet scheint sich ueber die Elemente zu legen.

Habt ihr eine Idee?

Verfasst: 23. April 2010 10:39
von archer
Zu
QComboBox::down-arrow
{
//tja was nun? "background: black;" erzeugt einen schwarzen Kasten
}
Vielleicht solltest du es dort mit Bildchen von Pfeilen oder was auch immer versuchen, so wie es in den Qt-Beispielen gezeigt wird.

Verfasst: 23. April 2010 11:12
von Oliver Hom
In dem StyleSheet Beispielen ist doch alles erklärt.

Den Buttonpfeil kann man doch per

Code: Alles auswählen

QComboBox::down-arrow {
     image: url(/usr/share/icons/crystalsvg/16x16/actions/1downarrow.png);
 }
verändern.

Die Radio und Checkboxen kann man mit dem Beispiel auch super verändern.
http://doc.qt.nokia.com/4.6/stylesheet- ... -qcheckbox
http://doc.qt.nokia.com/4.6/stylesheet- ... adiobutton

Gruß,
Oliver

Verfasst: 5. Mai 2010 08:50
von Paddre
An sich richtig...wenn der pfeil auch dort drin liegen wuerde ...
Der Ordner /usr/share/icons/crystalsvg/16x16/actions/ ist leer, genauso wie alle anderen Ordner in /usr/share/icons/crystalsvg/16x16/ usw.


Ich braeuchte schon den original Pfeil, den ich dann einfach in verschiedenen Farben abspeicher und lade.

Wisst ihr wo der liegt? Komm ich da ueberhaupt so einfach ran? Ich benutze Suse 11.2 mit Kde 4.3.1

Edit: Habe Dateien im Ordner /usr/share/icons/DMZ/cursors gefunden. Aber ich kann mir die alle nicht anschauen. Mit welchem Linux Programm ginge das? nicht mal Gimp kann die files oeffnen

Naechste Frage:
Wenn ein Eintrag in einem QMenu disabled ist hat der Text einen leichten Schatten. Kann ich den irgendwie deaktivieren?