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没有刷新界面的原因,截了桌面的图,打开却还是白色。
不知道还有没有其他什么选项或者参数控制后台刷新的逻辑。
根据您提供的代码和描述,可能有几个原因导致您遇到的问题:
目标机未连接显示器:Qt Quick应用程序通常需要一个显示器来显示界面。如果目标机没有连接显示器,应用程序可能无法正常显示。您可以尝试连接一个显示器,然后再次运行应用程序,看看是否可以正常显示界面。
远程桌面限制:如果您是通过远程桌面访问目标机器,并且目标机器没有连接显示器,那么远程桌面可能无法正常传输和显示Qt Quick界面。这是因为远程桌面通常对图形加速和渲染有一些限制。您可以尝试直接在目标机器上运行应用程序,或者使用其他远程访问方法(如VNC)来查看是否可以解决问题。
窗口尺寸增大的问题:在您的代码中,Timer的onTriggered信号槽中,每次触发时会将window.width
增加1。这可能导致窗口的宽度不断增大,直到超出屏幕范围。请确保您的窗口尺寸增大的逻辑是正确的,并且不会导致窗口显示问题。
QML文件缺失:如果您通过手动复制和使用windeployqt工具将应用程序的依赖文件复制到目标机器上,可能会遗漏某些与QML相关的文件。确保将QML文件(包括您的main.qml)以及与QML相关的其他资源文件正确地复制到目标机器的适当位置。这些文件通常位于应用程序的根目录或与可执行文件相同的目录中。
请尝试检查和解决上述问题,并确保目标机器上的环境和设置符合Qt Quick应用程序的需求。如果问题仍然存在,请提供更多详细的错误信息和环境信息,以便更好地帮助您解决问题。