来自资源文件的 Qt 图像
Qt Image from resource file
我正在尝试通过资源文件将图像插入到我的程序中,例如:
<RCC>
<qresource prefix="/">
<file>green.png</file>
<file>other files</file>
</qresource>
</RCC>
当我尝试使用 QImage 或 QPixmap 加载它时,例如:
QImage *green = new QImage(":/green.png");
if(green->isNull()) qDebug("null");
我总是看到那条空消息,表明我做错了什么。一种解决方案可能是使用绝对路径,如
"C:\Users\user\Documents\project\green.png",
这当然有效,但我更愿意使用资源文件来实现它。你能给我一些建议吗?
如果您的 png 文件与项目的 .pro、.qrc 和 .cpp 文件位于同一文件夹中,所有这些都将起作用。
通常将所有图片放入特殊的子文件夹Resources中会很方便,例如。然后在 .qrc 中,该行将如下所示:
<file>Resources/green.png</file>
并且在 .cpp 文件中:
QImage *green = new QImage(":/Resources/green.png");
添加资源文件后记得运行qmake吗?
首先,您需要创建一个.qrc文件并在其中添加图像文件夹
- (图片文件夹必须包含在项目文件夹内)
- 右键单击项目文件
- 新增
- Qt
- Qt 资源文件按选择并执行其他步骤
- 打开 .qrc 文件后,您必须按“添加”>“添加前缀”>“更改前缀名称”
- 再次添加 > 添加文件 > 并选择您的图像
然后转到 mainwindow.cpp(在我的项目中)文件并按以下代码调用图像
- 在我的例子中,图标文件夹是 Playericons
ui->play->setIcon(QIcon(":/Playericons/icons8-pause-30.png"));
我正在尝试通过资源文件将图像插入到我的程序中,例如:
<RCC>
<qresource prefix="/">
<file>green.png</file>
<file>other files</file>
</qresource>
</RCC>
当我尝试使用 QImage 或 QPixmap 加载它时,例如:
QImage *green = new QImage(":/green.png");
if(green->isNull()) qDebug("null");
我总是看到那条空消息,表明我做错了什么。一种解决方案可能是使用绝对路径,如
"C:\Users\user\Documents\project\green.png",
这当然有效,但我更愿意使用资源文件来实现它。你能给我一些建议吗?
如果您的 png 文件与项目的 .pro、.qrc 和 .cpp 文件位于同一文件夹中,所有这些都将起作用。
通常将所有图片放入特殊的子文件夹Resources中会很方便,例如。然后在 .qrc 中,该行将如下所示:
<file>Resources/green.png</file>
并且在 .cpp 文件中:
QImage *green = new QImage(":/Resources/green.png");
添加资源文件后记得运行qmake吗?
首先,您需要创建一个.qrc文件并在其中添加图像文件夹
- (图片文件夹必须包含在项目文件夹内)
- 右键单击项目文件
- 新增
- Qt
- Qt 资源文件按选择并执行其他步骤
- 打开 .qrc 文件后,您必须按“添加”>“添加前缀”>“更改前缀名称”
- 再次添加 > 添加文件 > 并选择您的图像
然后转到 mainwindow.cpp(在我的项目中)文件并按以下代码调用图像
- 在我的例子中,图标文件夹是 Playericons
ui->play->setIcon(QIcon(":/Playericons/icons8-pause-30.png"));