2013-04-24 1 views
6

내 이미지의 일부 점을 페인트하려고하는데 왜 작동하지 않는지 알 수 없습니다. QImage를 정의했으며 일부 점을 수정하려고합니다.QtPainter 오류 Paint device returned engine == 0, type 3, Painter not active

QImage *cou= new QImage(height,largeur,QImage::Format_Mono); 
    cou->fill(1); 
    QPainter *fig=new QPainter (cou); 
    for (i=0;i<size_;i++) 
    { 
     fig-> drawPoint(floor(propa[i]),nbmax[i]); 
    } 

내가 코드를 실행하면 내가 얻을

QPainter::begin: Paint device returned engine == 0, type: 3 

다음과 같은 라인

:

QPainter::drawPoints: Painter not active 
+1

이 떨어 졌다고? http://qt-project.org/doc/qt-4.8/qimage.html#isNull – cmannett85

+0

또한 'cou','qDebug()의 크기를 확인하십시오. << cou-> 크기();' – lucasmrod

답변

19
QPainter::begin: Paint device returned engine == 0, type: 3 

오류는 페인트하려는 이미지가 있음을 의미합니다 null 이미지. 이를 확인하려면 isNullcou에 사용하십시오. 이미지가 구축 될 때
이미지있는 널의 원인은 잘못된 heightlargeur PARAMS 될 수있다, 또는 null의 이미지가 반환되는 경우 확인 했 당신은 메모리

2
QPaintEngine* eng = cou->painterEngine(); 
if(eng) { 
// create QPainter ... 
} 
+4

아마도 당신의 대답에 대한 설명이 될 것입니다. OP와이 페이지의 미래 방문자에게 도움이 되셨습니까? –