Qml 在运行时可以工作,但不会在 Qt 设计器中加载照片
Posted
技术标签:
【中文标题】Qml 在运行时可以工作,但不会在 Qt 设计器中加载照片【英文标题】:Qml works when run but will not load photos in Qt designer 【发布时间】:2020-04-08 18:26:29 【问题描述】:在处理一个小型 qml 项目时,我发现了这种行为,我不确定我是否做错了什么,或者这是否就是这样。
我创建了一个简单的测试文件 Test.qml 以及 main.qml 和 main.cpp
import QtQuick 2.0
Item
width: 212
height: 212
Image
id: image
x: 0
y: 22
width: 212
height: 168
source: "images/PaperSpeed.png"
fillMode: Image.PreserveAspectFit
上面源中链接的图片
在设计器中显示实际图像
但运行时无法显示图片
我继续将源更改为 qrc URL:
source: "qrc:/img/images/PaperSpeed.png"
但现在它无法显示在设计器中
而是在运行时显示
我发现更奇怪的地方图片在 Test.qml 文件中显示在设计器中,但在两个源案例的 main.qml 文件中没有显示在设计器中
我的 .pro 文件:
QT += quick
CONFIG += c++11
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
main.cpp
RESOURCES += qml.qrc
QML_IMPORT_PATH =
QML_DESIGNER_IMPORT_PATH =
qnx: target.path = /tmp/$$TARGET/bin
else: unix:!android: target.path = /opt/$$TARGET/bin
!isEmpty(target.path): INSTALLS += target
和qrc文件:
<RCC>
<qresource prefix="/">
<file>Thermostat.qml</file>
<file>main.qml</file>
<file>Test.qml</file>
</qresource>
<qresource prefix="/img">
<file>images/PaperSpeed.png</file>
</qresource>
</RCC>
当我尝试导入像 QtQuickContols 这样的新模块时,这似乎确实发生了,最终摆脱了它,但问题仍然存在。
我尝试过使用 QML 仿真层并在 qrc 中移动文件。有人对我可以尝试什么或可能发生什么有任何想法吗?
如有任何格式问题,请提前道歉!
【问题讨论】:
【参考方案1】:我有同样的问题。如果我将图像添加到窗口,它可以解决。 检查下面的例子。如果我从窗口中删除测试图像,我会得到相同的结果。
【讨论】:
最好将代码发布为答案中的实际文本而不是图像。这样 OP 可以很容易地复制粘贴并尝试一下......【参考方案2】:对于仍在关注此问题的任何人,对我有用的是将 UI 元素分成 .ui.qml
并将后端逻辑分成 .qml
文件。当在设计器中打开 .ui.qml 文件时,这可以更好地加载 UI 元素和图片。
【讨论】:
以上是关于Qml 在运行时可以工作,但不会在 Qt 设计器中加载照片的主要内容,如果未能解决你的问题,请参考以下文章