2013-04-24 7 views
6

Sto provando a dipingere alcuni punti della mia immagine e non so perché non funzioni. Ho definito un QImage e voglio modificare alcuni punti.Errore QtPainter Vernice dispositivo restituito motore == 0, tipo 3, Pittore non attivo

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

Quando eseguo il codice ottengo

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

e nelle righe seguenti:

QPainter::drawPoints: Painter not active 
+1

Hai controllato se viene restituito un'immagine nulla? http://qt-project.org/doc/qt-4.8/qimage.html#isNull – cmannett85

+0

Controlla anche la dimensione di 'cou',' qDebug() << cou-> size(); ' – lucasmrod

risposta

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

L'errore significa che l'immagine che si sta cercando di dipingere è un'immagine nulla. Utilizzare isNull su cou per verificare questo.
La causa di immagine essendo nulla può essere sbagliate height e largeur params quando l'immagine è costruita, o sei fuori di memoria

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

Forse qualche spiegazione alla tua risposta sarebbe utile per OP e futuri visitatori di questa pagina? –

Problemi correlati