TabWidgets 中的 QQuiickWidgets 在渲染 OpenGL 代码时崩溃

QQuiickWidgets within TabWidgets crashes when rendering OpenGL code

本文关键字:OpenGL 代码 崩溃 中的 QQuiickWidgets TabWidgets      更新时间:2023-10-16

QQuickWidgets嵌入QTabWidget容器中,在通过QML,QQuickItemQSGNode渲染自定义OpenGL代码时崩溃。

当您单击QTabWidget上的其他选项卡并返回到渲染选项卡时,会发生崩溃或场景闪烁。

QQuickWidget* m_quickWidget = new QQuickWidget;

QTabWidget *tabs = new QTabWidget(this);
tabs->addTab(m_quickWidget,"TAB Rendering");
tabs->addTab(new QWidget(),"TAB 1");
m_quickWidget->setResizeMode(QQuickWidget::SizeRootObjectToView );
m_quickWidget->setSource(source);
setCentralWidget(tabs);

使用QQuickView s时,上述方案可以和平运行,没有任何问题:

QTabWidget *tabs = new QTabWidget(this);
QWidget* vw = QWidget::createWindowContainer(m_quickWidget);
tabs->addTab(vw,"TAB Rendering");
tabs->addTab(new QWidget(),"TAB 1");

我附上了一个qt项目来强调这个问题

回溯追踪更多信息

嗨,

我们已经看到了类似的东西,包括黑色闪烁,但是 5.5 似乎使黑色闪烁消失了。你试过吗?

另外,我建议您将其发布在Qt错误跟踪器上,以便Qt开发团队的人员可以重新创建并解决问题。