我有一个QStackedLayout
,其中添加了两个QWidget
个对象。第二个QWidget
创建如下:
QQuickView *view = new QQuickView();
view->setColor(Qt::transparent);
view->setSource(QUrl("qrc:/main.qml"));
m_qmlWidget = QWidget::createWindowContainer(view, this); // this is a QWidget object
现在我希望能够显示和隐藏第二个(顶部)小部件。我通过调用m_qmlWidget->setVisible(false);
或m_qmlWidget->setVisible(true);
来执行此操作,但每当我执行此操作时,窗口小部件将被绘制为整个空白(白色),并且在将背景更改为透明颜色后不久。这对我来说是个问题,因为第一个小部件大多是黑色的。我认为问题的原因是正在加载QML文件并阻止重绘事件。我想到的两个解决方案是:
我担心这两种选择都是不可能的。如何通过闪烁的白色背景解决问题?
当我将第二个visible
的{{1}}更改为true或false时,会发生闪烁。我不明白为什么隐藏顶部小部件会发生闪烁。
Here您可以找到一个有效的示例项目。也许QWidget
对象是问题所在。创建两个小部件似乎没有产生问题。