图像未显示QT6 C++ Cmake

hgb9j2n6  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(102)

我目前正在用c++和cmake在QT6中重新编码一个旧的QT5 python项目。一切都工作得很好,但当我尝试显示图像时,它不会显示。
所以我只是创建了一个简单的测试程序,有一个图像,但我不能让它工作。我刚开始使用qrc,不太确定我做错了什么。它出现在qt designer中,但我知道这并不意味着什么。似乎他没有找到图像,但终端中没有错误或反馈。
下面是我的项目看起来像:

Main.qml:

import QtQuick

Window {
    width: 640
    height: 480
    visible: true
    color: "#c03434"
    title: qsTr("Hello World")

    Rectangle {
        id: rectangle
        x: 79
        y: 57
        width: 483
        height: 367
        color: "#00ffffff"

        Image {
            id: image
            visible: true
            anchors.fill: parent
            source: ":/images/logo_white_100x100.png"
            fillMode: Image.PreserveAspectFit
        }
    }
}

字符串

CMakeList:

cmake_minimum_required(VERSION 3.16)

project(biiiigtesterino VERSION 0.1 LANGUAGES CXX)

set(CMAKE_AUTOMOC ON)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt6 6.2 COMPONENTS Quick REQUIRED)

qt_add_executable(appbiiiigtesterino
    main.cpp
    res.qrc
)

qt_add_qml_module(appbiiiigtesterino
    URI biiiigtesterino
    VERSION 1.0
    QML_FILES main.qml 

)

set_target_properties(appbiiiigtesterino 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_compile_definitions(appbiiiigtesterino
    PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
target_link_libraries(appbiiiigtesterino
    PRIVATE Qt6::Quick)

res.qrc:

<RCC>
    <qresource prefix="/images">
        <file>logo_white_100x100.png</file>
        <file>main.qml</file>
    </qresource>
</RCC>


我读过this,但它没有帮助。我很感激你的帮助,因为我已经绝望了。

yqkkidmi

yqkkidmi1#

你不应该使用带有新qt_add_qml_module的qrc
将png文件添加到qt_add_qml_modules RESOURCES应该修复它,您可能需要调整路径。应该在qt网站上记录它。也 checkout 这个博客,他们张贴了关于它https://www.qt.io/blog/qml-modules-in-qt-6.2

6g8kf2rb

6g8kf2rb2#

我在文档中读到,你需要添加以下内容:

qt_add_resources(yourApp imageresources
    FILES
        folder_of_image/your_image.png
)

字符串
然后在Image qml对象中调用它:

Image {
   source: "qrc:/folder_of_image/your_image.png"
}


对我来说没问题我希望这能帮助到一些人

相关问题