Seite 1 von 1

QRubberBand: Wie ändert man Farben ?

Verfasst: 5. März 2009 09:11
von nasahl
Hallo,

ich möchte ein QRubberBand einsetzen um Rechtecke zu zeichnen. Was ist nicht hinkriege ist, die Farbe und den Style des Rechtecks zu ändern.
Z.B. ändert die folgende Implementierung nichts am Style

Code: Alles auswählen

class MyRubberBand : public QRubberBand
{
public:
    MyRubberBand ( Shape s, QWidget * p = 0 ) : QRubberBand(s, p)
    {
        QPalette pal;
        pal.setBrush(QPalette::Foreground, Qt::red);
        pal.setBrush(QPalette::Background, Qt::red);
        pal.setBrush(QPalette::Base, Qt::red);
        pal.setColor(QPalette::Foreground, Qt::red);
        pal.setColor(QPalette::Background, Qt::red);
        pal.setColor(QPalette::Base, Qt::red);
        setPalette(pal);

        QStyleOptionRubberBand* option = new QStyleOptionRubberBand();
        option->palette = pal;
        initStyleOption(option);
    }
};
Geht das überhaupt ?

Christof

Verfasst: 5. März 2009 09:28
von AuE
The palette's background color will only have an effect on the appearance of the widget if the autoFillBackground property is set.

Code: Alles auswählen

QPalette p = ui.leStatusAchse->palette();

		p.setColor(p.All, p.Base,  ColorByState(rdObj1.stat_spsconnection));
		ui.leStatusSPS->setPalette(p);

Verfasst: 5. März 2009 09:52
von nasahl
Danke, das bringt eine Veränderung.

Mein Ziel ist es aber keinen Hintergrund zu zeichnen, dafür aber eine rote gestrichelte Linie. Da komm ich mit setAutoFillBackground natürlich nicht weiter.

Kann man die Linienfarbe und -form beeinflussen?