QQuickView-调整内容大小而不会出现延迟/滞后

时间:2019-04-30 15:09:16

标签: qt qml

图片通常是解释某些事情的最简单方法,以下是我遇到的问题的屏幕截图:

laggy resize

如果您查看窗口的右侧,则可以看到内容的大小已调整为可见的滞后/延迟。这个问题在很多应用程序中都会发生,但是我想知道是否有一种方法可以使用QQuickView和QML内容在Qt应用程序中解决此问题。

基本上,我的应用程序是这样创建的:

QQuickView view;
view.resize(400, 200);
view.setResizeMode(QQuickView::ResizeMode::SizeRootObjectToView);
view.setSource(...);

QML的内容只是带有2个矩形的项目,以突出显示问题。

编辑:这是QML文件的简化版本(是的,简化版本也存在相同的问题; p)

import QtQuick 2.12
Item {
    Rectangle {
        color: "black"
        anchors { fill: parent; margins: 10 }
    }
}

Edit2 :通过qmlscene可执行文件运行这个小的QML代码段也显示相同的延迟/滞后。

Edit3 :在某些Linux发行版上发生了相同的问题,但在其他一些发行版上却没有:在我的Ubuntu上运行正常,但在我的CentOS 7上显示的延迟/故障与Windows上相同。两个Qt版本均为5.12.3。在旧的OSX上,它运行良好(已在Qt 5.9上测试),我现在真的迷路了^^

有什么办法可以防止这种延迟?该解决方案可能是特定于平台的,因为问题似乎出在以下事实:在Qt可能获取事件之前已调整了本机帧的大小,因此,内容的大小被调整为1帧延迟...但是我想想知道是否有人对如何解决这个问题有想法吗?

感谢任何帮助或指针:)

关于, 达米安

0 个答案:

没有答案