QRubberBand: Wie ändert man Farben ?

Alles rund um die Programmierung mit Qt
Antworten
nasahl
Beiträge: 33
Registriert: 24. Juli 2008 12:30

QRubberBand: Wie ändert man Farben ?

Beitrag 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
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag 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);
nasahl
Beiträge: 33
Registriert: 24. Juli 2008 12:30

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