将 QPixmap 设置为纹理



>我收到一个字节数组,其中包含来自网络的PNG文件。我需要将其设置为像素图,并将其设置为我的QGlWidget的纹理。当我运行下面的程序时,pixmap处于调试模式,不包含任何内容。但是,字节包含从网络接收的整个字节数组。

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();
}
QPixmap::save(..)

QPixmap的内容保存到缓冲区中,您肯定想使用QPixmap::loadFromData(..)来做相反的事情吗?

相关内容

  • 没有找到相关文章

最新更新