严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C2664 “bool QOpenGLContext::makeCurrent(QSurface *)”: 无法将参数 1 从“QImage *”转换为“QSurface *”
时间: 2023-06-12 22:07:21 浏览: 161
这个错误的原因是你传递了一个 `QImage` 类型的对象作为参数,而 `makeCurrent()` 方法需要一个 `QSurface` 类型的参数。因此编译器无法将 `QImage` 类型隐式转换为 `QSurface` 类型。
要解决这个问题,你需要将 `QImage` 对象转换为 `QOffscreenSurface` 对象,然后将 `QOffscreenSurface` 作为参数传递给 `makeCurrent()` 方法。可以使用以下代码完成转换:
```cpp
QOffscreenSurface surface;
surface.create();
QPainter painter(&surface);
painter.drawImage(0, 0, image); // 将你的 QImage 对象绘制到 QOffscreenSurface 上
context->makeCurrent(&surface); // 将 QOffscreenSurface 作为参数传递给 makeCurrent() 方法
```
这样就可以避免上述错误了。
阅读全文