我是 Qt 的新手,我正在通过简单的基本示例进行探索 我尝试在我的窗口中显示一个简单的图像,但是,除非是一个空窗口,否则什么都不会出现 我把我的图像放在一个资源文件 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>
main.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();
}
如果你能帮忙,请
如果您需要更多信息,非常高兴 m 使用带有 minGW 编译器的 Q6
基于这个answer,你要对你的项目做如下修改:
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>