Diverse Fragen zu QStyleSheets

Alles rund um die Programmierung mit Qt
Antworten
Paddre
Beiträge: 30
Registriert: 10. Februar 2009 09:46

Diverse Fragen zu QStyleSheets

Beitrag 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
Paddre
Beiträge: 30
Registriert: 10. Februar 2009 09:46

Beitrag 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.
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag von archer »

Schau dir doch mal die Beispiele in der StyleSheet-Dokumentation an.
Paddre
Beiträge: 30
Registriert: 10. Februar 2009 09:46

Beitrag 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.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag 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").
Paddre
Beiträge: 30
Registriert: 10. Februar 2009 09:46

Beitrag 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 ^^
Paddre
Beiträge: 30
Registriert: 10. Februar 2009 09:46

Beitrag 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?
Zuletzt geändert von Paddre am 23. April 2010 11:12, insgesamt 1-mal geändert.
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag 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.
Oliver Hom
Beiträge: 33
Registriert: 27. Mai 2009 12:44

Beitrag 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
Paddre
Beiträge: 30
Registriert: 10. Februar 2009 09:46

Beitrag 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?
Antworten