PaintEvent reagiert nicht auf Änderungen?

Alles rund um die Programmierung mit Qt
Antworten
toem
Beiträge: 124
Registriert: 17. März 2009 14:01

PaintEvent reagiert nicht auf Änderungen?

Beitrag von toem »

Hallo,
ich habe ein QGraficsView Object via Code erstellt und binde dies danach über

Code: Alles auswählen

QGridLayout *mainLayout = new QGridLayout;
this->setLayout(mainLayout);
mainLayout->addWidget(&myGrafik);
in mein Fenster ein. Anschließend möchte ich, je nach Programmstatus, die Hintergrundfarbe ändern und ggf. via GrafikScene Text hineinschreiben.
Doch obwohl er das PaintEvent aufruft, wird am Object nichts verändert.
Was machte ich hier ggf. falsch?

Code: Alles auswählen

void Grafik::paintEvent(QPaintEvent*)
{
    QPainter painter(this);
    painter.setBackground(QBrush(QColor(Qt::red)));

    QFont serifFont("Brush Script MT", 16, QFont::Bold);
    gsc.addText("Testtext", serifFont);
    setScene(&gsc);
}
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Moin

Paar Sachen:
*) Läuft dir vllt. myGrafik aus dem Scope? hier

Code: Alles auswählen

mainLayout->addWidget(&myGrafik);
hoffe ich, dass myGrafik ein member deiner Klasse ist. Ansonsten ist das Objekt einfach futsch...

*) Funktioniert Graphics View Framework gaaaanz anders, als du dir das vorstellt. Du fügst jetzt bei JEDEM repaint ein neues textitem hinzu! Und nicht nur einmal! Schau dir bitte erst nochmal in Ruhe die Beispiele zu GraphicsView an (qt4-source-> examples und demos-Verzeichnisse). Da wirst du sehen, dass paintEvent nie implementiert wird, das läuft über die Scene, mit GraphicsItems.

Grüße
Franz
Antworten