【发布时间】:2019-08-19 10:00:00
【问题描述】:
我的实现基于此示例。 https://doc.qt.io/qt-5/qtopengl-2dpainting-example.html
示例的作用是渲染/动画 2 个图像。一种是使用本机 qt 功能渲染的,另一种是使用 OpenGL 渲染的。这里的所有都是它的。正在绘制的图像完全相同。
示例工作正常。我可以看到两个图像都有动画。然后,当我尝试通过在 QGraphicsScene 中添加一个 Window 类(包含 QOpenGLWidget)来进行更改时; QOpenGLWidget 停止自我更新。
原来的main.cpp
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QSurfaceFormat fmt;
fmt.setSamples(4);
QSurfaceFormat::setDefaultFormat(fmt);
Window window;
window.show();
return app.exec();
}
更改了 main.cpp
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QSurfaceFormat fmt;
fmt.setSamples(4);
QSurfaceFormat::setDefaultFormat(fmt);
Window window;
//window.show();
QGraphicsScene scene;
scene.addWidget(&window);
scene.addText("Hello");
QGraphicsView view(&scene);
view.show();
return app.exec();
}
这是输出。
此处提供完整的源代码。 https://github.com/syaifulnizamyahya/QT2dpainting
【问题讨论】:
-
请提供一个最小的工作示例,其中包含您所做的所有更改。
-
我提供了完整的源代码。我所做的唯一更改是 main.cpp 中的几行,我已经展示了。
-
这似乎或多或少是您的previous question 的欺骗,在这种情况下,同样的comment 也适用。
-
@G.M.是的。我这样做是因为在我的上一个问题中,我还有其他错误。在这里,我可以使其更具体,因为只有 1 处更改。并且没有错误。另外,我已经删除了 QGraphicsProxyWidget,我仍然遇到同样的问题。
-
@EddyAlleman 我添加了工作示例。
标签: qt opengl qopenglwidget qgraphicsproxywidget