资源中的图像未在 Qt QML 中加载

问题描述 投票:0回答:1

我正在开发一个Qt QML项目,我试图在我的窗口中显示一个简单的图像,但除了一个空窗口之外什么也没有显示。

我将图像放入资源文件中 (

qrc
),并提供了源及其确切路径。

Main.qml

import QtQuick 2.4
import QtQuick.Window 2.4

Window {
    width: 400
    height: 400


        Image {
            id: image
            x: 0
            y: 0
            width: 400
            height: 400
            source: "1.PNG"
            fillMode: Image.PreserveAspectFit
        }

    visible: true
}

图片.qrc

<RCC>
    <qresource prefix="/pics">
        <file>1.PNG</file>
    </qresource>
</RCC>

主.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>


int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    const QUrl url(u"qrc:/Hello_Word/Main.qml"_qs);
    QObject::connect(&engine, &QQmlApplicationEngine::objectCreationFailed,
        &app, []() { QCoreApplication::exit(-1); },
        Qt::QueuedConnection);
    engine.load(url);

    return app.exec();
}

如何在我的

1.PNG
中显示
window

qml qt-creator qt-resource
1个回答
1
投票

基于此答案,您必须对您的项目进行以下修改:

CMakeLists.txt

cmake_minimum_required(VERSION 3.16)

project(ExplainQML VERSION 0.1 LANGUAGES CXX)


set(CMAKE_CXX_STANDARD_REQUIRED ON)
########add this line to compile qrc file to rcc
set(CMAKE_AUTORCC ON)                   
########


find_package(Qt6 6.4 REQUIRED COMPONENTS Quick)

qt_standard_project_setup()

qt_add_executable(appExplainQML
    main.cpp
    #########add the resource file to your project
    res.qrc
    #############
)

qt_add_qml_module(appExplainQML
    URI ExplainQML
    VERSION 1.0
    QML_FILES Main.qml
)

set_target_properties(appExplainQML PROPERTIES
    MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
    MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
    MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
    MACOSX_BUNDLE TRUE
    WIN32_EXECUTABLE TRUE
)

target_link_libraries(appExplainQML
    PRIVATE Qt6::Quick
)

install(TARGETS appExplainQML
    BUNDLE DESTINATION .
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})

source
中的
main.qml
更改为:

source: "qrc:/pics/1.PNG"

您的

qrc
文件还需要更改为以下内容:

<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="/pics/">
    <file alias="1.PNG">pics/1.PNG</file>
</qresource>
</RCC>

注意:如果您更改正在使用的文件或使用多个文件,请务必相应地修改您的项目,特别是

qrc
文件和
main.qml

© www.soinside.com 2019 - 2024. All rights reserved.