39 Stimmen

Wie setze ich die Hintergrundfarbe eines Widgets wie eines Kombinationsfeldes oder eines Doppeldrehrades fest?

Ich versuche, die Hintergrundfarbe für einen Doppel-Spin-Box festzulegen, aber ich bin mir nicht sicher, welche Funktion ich verwenden sollte.

Ich habe eine Funktion namens SetBackgroundRole gesehen, die eine Qt::ColorRole akzeptiert, aber ich bin mir auch nicht sicher, wie ich diese verwenden soll.

Bitte lassen Sie mich wissen, wie man die Hintergrundfarbe eines QComboBox oder QDoubleSpinBox einfach ändern kann?

1voto

Patapoom Punkte 661

Keine der vorherigen Antworten hat für mich funktioniert, aber ich habe eine Mischung aus allen Antworten gemacht und schließlich hat es mit Qt 5.12 funktioniert:

QPalette pal = ui.widget->palette();
pal.setColor(QPalette::Base, Qt::red);
ui.widget->setPalette(pal);

0 Stimmen

Schöne Antwort! Ein weiterer cooler und subtilerer Highlight-Effekt ist es, QPalette::Background statt QPalette::Base zu verwenden, aber mit dunklen Farben wie Magenta oder Grün.

0voto

fhe Punkte 5967

Ich würde etwas wie folgt versuchen

QPalette pal = widget.palette();
pal.setColor(QPalette::Window, Qt::blue);
widget.setPalette(pal);

1 Stimmen

Ich habe versucht, dies zu tun, aber irgendwie wird die Hintergrundfarbe nicht aktualisiert. Hast du eine Idee, was der Grund sein könnte. Hast du noch etwas angenommen..

0 Stimmen

Was ich meine ist, sollte ich nach dem Setzen der Farbpalette irgendetwas wie ein Repaint aufrufen oder etwas ähnliches?

0 Stimmen

Ich habe hier kein QT zum Testen, aber QWidget::update() sollte eine Neumalung erzwingen. Hast du Jérômes Lösung ausprobiert?

-1voto

Rodrigo Haas Punkte 7
comboBox->setPalette( QPalette( Qt::blue ) );

Funktioniert gut für mich!

1 Stimmen

Ich habe das versucht, aber bei mir funktioniert es nur, wenn der QSpinBox deaktiviert ist (d.h. wenn der QSpinBox aktiviert ist, wird die Farbe wieder normal). Irgendeine Idee?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X