2013-10-28 71 views
1

我收到一個包含來自網絡的PNG文件的字節數組。我需要將其設置爲像素圖並將其設置爲我的QGlWidget的紋理。當我運行下面的程序時,pixmap處於調試模式,並且不包含任何內容。但是,字節包含從網絡接收的整個字節數組。將QPixmap設置爲紋理

void MainWindow::dataFromServer(QByteArray bytes) 
{ 
// QByteArray bytes; 
    QBuffer buffer(&bytes); 

    QPixmap pixmap; 
// pixmap = QPixmap::grabWidget(this); 

    buffer.open(QIODevice::WriteOnly); 

    pixmap.save(&buffer, "PNG"); // writes pixmap into bytes in PNG format 

    emit sendPixmapToWidget(pixmap); 
} 

這裏我設置的像素圖紋理:

void GlWidget::pixmapCatchFromForm(QPixmap pixmap) 
{ 
    deleteTexture(texture); 

// image->loadFromData(bytes, "PNG"); 

    texture = bindTexture(pixmap); 

    qDebug() << texture; // returns 1 

    updateGL(); 
} 

回答

0

QPixmap::save(..)節省QPixmap的內容到緩衝區,一定要使用QPixmap::loadFromData(..)反其道而行之?