0

在处理一个小型 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 文件中未显示在设计器中

我的简历:

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 中移动文件。有人对我可以尝试什么或可能发生的事情有任何想法吗?

对于任何格式问题,请提前道歉!

4

2 回答 2

0

对于仍在关注此问题的任何人,对我有用的是将 UI 元素分成 a.ui.qml并将后端逻辑分成.qml文件。当在设计器中打开 .ui.qml 文件时,这可以更好地加载 UI 元素和图片。

于 2022-02-16T18:04:36.630 回答
0

我有同样的问题。如果我将图像添加到窗口,它可以解决。检查下面的例子。如果我从窗口中删除测试图像,我会得到相同的结果。

main.qml

于 2021-03-10T05:29:48.910 回答