我目前正在用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,但它没有帮助。我很感激你的帮助,因为我已经绝望了。
2条答案
按热度按时间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
6g8kf2rb2#
我在文档中读到,你需要添加以下内容:
字符串
然后在Image qml对象中调用它:
型
对我来说没问题我希望这能帮助到一些人