2013-04-24 6 views
6

Ich versuche, einige Punkte meines Bildes zu malen, und ich weiß nicht, warum es nicht funktioniert. Ich habe ein QImage definiert und möchte einige Punkte ändern.QtPainter Error Paint Gerät zurückgegeben Motor == 0, Typ 3, Maler nicht aktiv

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]); 
    } 

Wenn ich den Code ausführen ich erhalten

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

und in den folgenden Zeilen:

QPainter::drawPoints: Painter not active 
+1

Haben Sie, wenn ein Null-Bild zurückgegeben wird geprüft? http://qt-project.org/doc/qt-4.8/qimage.html#isNull – cmannett85

+0

Überprüfen Sie auch die Größe von 'cou',' qDebug() << cou-> size(); ' – lucasmrod

Antwort

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

Der Fehler bedeutet, dass das Bild, das Sie malen möchten, ist ein Nullbild Verwenden Sie isNull auf cou, um dies zu überprüfen.
Die Ursache für das Bild ist null kann die falschen height und largeur params sein, wenn das Bild aufgebaut ist, oder Sie sind aus der Erinnerung

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

Vielleicht eine Erklärung zu Ihrer Antwort wäre hilfreich für OP und zukünftige Besucher dieser Seite? –