2009-06-17 37 views
0

我試圖在我的程序中重寫方法paintEvent並對其進行更改。Qt - 創建QPainter

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

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

這裏我試圖改變我的bg圖像。但我得到了一個錯誤在線:QPainter painter(this);

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

+4

你應該知道painter.end()在這種情況下是不需要的。當畫家超出範圍時,它的析構函數自動爲你做這件事。 – 2009-06-17 16:58:31

回答

7

包含QPainter頭文件。 QPainter類只在您包含在該翻譯單元中的Qt標題之一中進行前向聲明。

1

你是否包括? Qt是類前向聲明​​的忠實粉絲,這導致了這樣的神祕錯誤。

2
#include <QPainter>