1

ネットワークから PNG ファイルを含むバイト配列を受け取りました。これをピックスマップに設定し、テクスチャとして QGlWidget に設定する必要があります。以下のプログラムを実行すると、pixmap はデバッグ モードになり、何も含まれていません。ただし、bytes には、ネットワークから受信したバイト配列全体が含まれます。

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();
}
4

1 に答える 1

0

QPixmap::save(..)の内容をバッファに保存しますが、反対のことをしQPixmapたいQPixmap::loadFromData(..)ですか?

于 2013-10-29T13:20:54.513 に答える