2009-06-17 4 views
0

J'essaie de réécrire la méthode paintEvent dans mon programme et de le changer.Qt - création de QPainter

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

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

Ici, j'essaie de changer mon image bg. Mais j'ai eu une erreur sur la ligne: QPainter painter(this);

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

+4

Vous devriez également savoir que painter.end() n'est pas nécessaire dans ce cas. Quand le peintre sort de sa portée, son destructeur le fait automatiquement pour vous. –

Répondre

7

Inclure le fichier d'en-tête QPainter. La classe QPainter n'est renvoyée que dans l'un des en-têtes Qt inclus dans cette unité de traduction.

1

Êtes-vous inclus? Qt est un grand fan de la déclaration avant des classes, ce qui provoque de telles erreurs cryptiques.

2
#include <QPainter>