QML 应用程序失去焦点时会变黑

问题描述 投票:0回答:1

我的应用程序正在嵌入另一个应用程序中运行,该应用程序使用窗口句柄类名来获取它。我正在使用

Qt 5.7.1
QML
运行我的应用程序。 QML 位于 QQuickViewer 中,该 QQuickViewer 使用 createWindowContainer 通过 QWidget 容器显示,并设置为我的主窗口的中央小部件。我的问题是这样的。当加载到嵌入我的应用程序的程序(我无权更改)时,我的应用程序会变成黑屏,就好像只要包含我的应用程序获得焦点,图形绘制事件就会失败。只要有理由这样做(例如按下按钮或单击动画控件),我的应用程序就会重新绘制并显示良好。

我尝试了很多窗口标志和属性,试图让它发挥作用。即使将渲染器设置为使用软件 OpenGL,这实际上也会导致应用程序无法获取我的渲染器。另一个重要的注意事项是,我的应用程序本身运行得很好,只有当它嵌入到父应用程序中时,我才会遇到黑屏问题。下面是我的主窗口构造函数的代码片段。任何想法都将不胜感激。我不是图形问题方面的专家,所以如果这没有意义,我很抱歉。

在主窗口()中:

QQuickViewerApp myQQuickViewerApp(argc, argv, app);

QWidget * container = QWidget::createWindowContainer(myQQuickViewer->getViewer(), this);

container->setMinimumSize(QSize(665, 520));
container->setMaximumSize(2200, 2200); //Arbitrary for now

setCentralWidget(container);
setFocusProxy(container);
container->setFocusPolicy(Qt::NoFocus);
c++ qt opengl qml
1个回答
0
投票

我知道这是一个老问题,但我也遇到了同样的问题。你解决了吗?

© www.soinside.com 2019 - 2024. All rights reserved.