c++ - 一旦在任何窗口内运行动画,qt QML 中的多个窗口就会开始闪烁/闪烁

标签 c++ qt qml window flicker

我正在尝试为我的一个项目编写原型(prototype),该项目涉及基于 qml 的应用程序中的多个窗口。一切都按预期工作,但是当焦点在窗口之间改变并且动画开始时(在我的例子中它是快速控件按钮内的默认动画)它会开始闪烁/疯狂闪烁。

注意:我目前正在运行 Qt 5.13 beta,但问题已经出现在 Qt 5.12 中,距离 Qt 5.13 发布只有 5 天了。它存在于 Windows 和 macOS 上

这是一个简单示例中的问题的快速演示,首先是恢复窗口焦点并单击按钮(因此启动动画)时闪烁的 gif:

flickering in multiple window exemple

和代码:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.13

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
    Rectangle{
        anchors.fill: parent
        color: "red"
        Button{
            height: 50
            width: 30
        }
    }

    Window {
        visible: true
        width: 640
        height: 480
        title: qsTr("Hello World 2")
        Rectangle{
            anchors.fill: parent
            color: "blue"
            Button{
                height: 50
                width: 30
            }
        }
    }
}

还有更高级的动画,例如我的原型(prototype)中的这个动画(这是它应该在没有闪烁的情况下出现的样子):

normal animation inside main applicationWindow

但在子窗口中,它根本无法使用:

animation flickering inside child qml window

感谢您知道它来自哪里或任何解决方案!

最佳答案

安装最终版 Qt 5.13(不是测试版)后,问题就消失了。我猜这是一个内部 Qt 问题。

关于c++ - 一旦在任何窗口内运行动画,qt QML 中的多个窗口就会开始闪烁/闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56306438/

相关文章:

c++ - 嵌套宏的扩展,从内到外?

c++ - Qt:保存 Qt-creator 应用程序的 SQLite 数据库的最佳 "Path"在哪里?

c++ - Qt 5.3.1 - 静态构建导致链接器错误

c++ - 如何在 directshow 中开发视频组合器/生成器过滤器

c++ - 使用/clr 在 Visual Studio 2010 中 boost

c++ - Qt 中的翻译问题

qt - 无法使用按钮 : QML 关闭窗口

qml - 错误 : "module "QtQuick. 控件“未安装”

qml - ListView 突出显示项目未显示

c++ - 如何在旋转时渲染 AABB