2013-04-24 11 views
6

Resimimin bazı noktalarını boyamaya çalışıyorum ve neden çalışmadığını bilmiyorum. Bir QImage tanımladım ve bazı noktaları değiştirmek istiyorum.QtPainter Hatası Boya aygıtı motoru döndü == 0, tip 3, Boyacı etkin değil

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

Ben kodu çalıştırmak zaman elde

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

ve aşağıdaki satırları

:

QPainter::drawPoints: Painter not active 
+1

kalmadı mı? http://qt-project.org/doc/qt-4.8/qimage.html#isNull – cmannett85

+0

Ayrıca, 'cou', 'qDebug() << cou-> size();' – lucasmrod

cevap

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

hata boyamak için çalışıyoruz görüntü demektir boş bir görüntü. Bunu kontrol etmek için cou numaralı telefondan isNull kullanın. Görüntü inşa edildiğinde
görüntü olmanın boş nedeni yanlış height ve largeur parametreler olabilir veya boş bir görüntü döndürülür eğer kontrol ettiniz bellek

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

boyutunu da kontrol edin. OP ve bu sayfanın gelecekteki ziyaretçileri için yararlı? –

İlgili konular