图片通常是解释某些事情的最简单方法,以下是我遇到的问题的屏幕截图:
如果您查看窗口的右侧,则可以看到内容的大小已调整为可见的滞后/延迟。这个问题在很多应用程序中都会发生,但是我想知道是否有一种方法可以使用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帧延迟...但是我想想知道是否有人对如何解决这个问题有想法吗?
感谢任何帮助或指针:)
关于, 达米安