c++ - QLabel 从文件加载图像

标签 c++ qt5 qimage qlabel

我使用 Qt 资源系统加载图像。

但是资源集合文件(.qrc)只有20MB

所以我尝试使用 QImage::loadFromData 加载图像以供我的应用程序使用。

但是对于资源集合文件(.qrc)我使用

QImage image0(":/images/dashboard_n.png");

加载图片。

如何使用QImage::loadFromData加载图片

qrc如何使用相对路径?

而且我无法编译和更新 terminal.qrc。

最佳答案

通常将 image.png 文件放在 *.qrc 所在的目录中是很常见的,例如:

${Project_Resource_Directory}/images/dashboard_n.png

.qrc 文件将放在此处:

${Project_Resource_Directory}/resources.qrc

您的 .qrc 文件应如下所示:

<RCC>
     <qresource prefix="/">
         <file>images/dashboard_n.png</file>
     </qresource>
</RCC>

将此代码放入您的 .pro 文件中:

RESOURCES += ${Project_Resource_Directory}/resources.qrc

替换项目结构中的资源目录名称而不是 ${Project_Resource_Directory} 以便 Qt 可以检测到您的 *.qrc 文件并使用 rcc 将它们编译为 c 代码

然后你可以在你的任何 cpp 代码中使用这个地址:

":/images/dashboard_n.png"

关于c++ - QLabel 从文件加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54417038/

相关文章:

c++ - Intellisense 说错误 : member "Class::field" is inaccessible but it's still works? 为什么?

c++ - 高性能 QImage 输出显示

c++ - C++ 编码人员通常会显式地进行 move ,还是只依赖编译器来完成?

c++ - 在linux中用gcc命令编译C代码时如何包含lib

c++ - 在返回的 XML 上循环映射以获取节点值

linux - 当使用 -platform eglfs 运行 Qt5 应用程序时,i.MX6 上的 "EGL Error : could not create the EGL surface: error 0x300b"

c++ - Qt5 - 将视频播放器从 4.8 移植到 5.1

c++ - Qt无法保存像素图

c++ - 将 OpenCV Mat 图像转换到 QImage 时警告使用旧式转换?

c++ - 从 XBM 创建 QImage