2009-06-17 14 views
0

Ich versuche, Methode paintEvent in meinem Programm zu schreiben und ändern Sie es.Qt - Erstellen von QPainter

void MainWindow::paintEvent(QPaintEvent *event) 
{ 
    QRegion reg = this->bgPixmapHandle->rect(); 
    QPainter painter(this); 

    painter.setClipRegion(reg); 
    painter.drawImage(bgPixmapHandle->rect(), bgPixmapHandle); 
    painter.end(); 
} 

Hier versuche ich mein bg Bild zu ändern. Aber ich habe einen Fehler auf der Leitung: QPainter painter(this);

Error: Variable 'QPainter painter' is initialized, though the type is incomplete

+4

sollten Sie auch wissen, dass painter.end() in diesem Fall nicht benötigt wird. Wenn der Maler den Rahmen verlässt, macht sein Destruktor dies automatisch für Sie. –

Antwort

7

Include QPainter Header-Datei. QPainter-Klasse wird nur in einem der Qt-Header deklariert, die Sie in dieser Übersetzungseinheit enthalten.

1

Sind auch Sie? Qt ist ein großer Fan der Vorwärtsdeklaration von Klassen, die solche kryptischen Fehler verursacht.

2
#include <QPainter> 
Verwandte Themen