2013-10-28 3 views
1

Получаем массив байтов, содержащий файл PNG из сети. Мне нужно установить это в pixmap и установить его как текстуру для моего QGlWidget. Когда я запускаю программу ниже, pixmap находится в режиме отладки и ничего не содержит. Однако байты содержат весь массив байтов, полученный из сети.set QPixmap to texture

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 «s в буфер, конечно, вы хотите использовать QPixmap::loadFromData(..) сделать наоборот?