无显示器quick程序显示异常

window上新建Qt quick Application程序,只修改main.qml(后面贴出)生成release程序,通过windeployqt,(windeployqt test.exe -qmldir D:\Qt5.15\5.15.2\msvc2019_64\qml)与手动去覆盖拷贝了qml去完善程序所需dll,然后拷贝到目标机。界面背景为白(Rectangle显示不出来)。但是Timer中的让window.wdith增大代码却一直能运行,用debugview没看到什么报错。

import QtQuick 2.15
import QtQuick.Window 2.15

Window {
    id:window
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    Rectangle{
        id:back
        width: 640
        height: 480
        color:"green"
    }

    Timer {
        id: timer
        running: true
        repeat: true
        interval: 1000
        onTriggered:{
            window.width += 1
            back.color = "yellow"
            back.update()
            window.update()
        }
    }
}


目标机未接上显示器,通过todesk去远程,程序只会增大,背景为白色。
但是用windows自带的“远程桌面连接”同一个目标机,程序实现正常,大小也在变大。
一开始怀疑是todesk没有刷新界面的原因,截了桌面的图,打开却还是白色。
不知道还有没有其他什么选项或者参数控制后台刷新的逻辑。

根据您提供的代码和描述,可能有几个原因导致您遇到的问题:

  1. 目标机未连接显示器:Qt Quick应用程序通常需要一个显示器来显示界面。如果目标机没有连接显示器,应用程序可能无法正常显示。您可以尝试连接一个显示器,然后再次运行应用程序,看看是否可以正常显示界面。

  2. 远程桌面限制:如果您是通过远程桌面访问目标机器,并且目标机器没有连接显示器,那么远程桌面可能无法正常传输和显示Qt Quick界面。这是因为远程桌面通常对图形加速和渲染有一些限制。您可以尝试直接在目标机器上运行应用程序,或者使用其他远程访问方法(如VNC)来查看是否可以解决问题。

  3. 窗口尺寸增大的问题:在您的代码中,Timer的onTriggered信号槽中,每次触发时会将window.width增加1。这可能导致窗口的宽度不断增大,直到超出屏幕范围。请确保您的窗口尺寸增大的逻辑是正确的,并且不会导致窗口显示问题。

  4. QML文件缺失:如果您通过手动复制和使用windeployqt工具将应用程序的依赖文件复制到目标机器上,可能会遗漏某些与QML相关的文件。确保将QML文件(包括您的main.qml)以及与QML相关的其他资源文件正确地复制到目标机器的适当位置。这些文件通常位于应用程序的根目录或与可执行文件相同的目录中。

请尝试检查和解决上述问题,并确保目标机器上的环境和设置符合Qt Quick应用程序的需求。如果问题仍然存在,请提供更多详细的错误信息和环境信息,以便更好地帮助您解决问题。