如何使用编译时预定义图像在QT中定义图标?

时间:2010-04-25 17:45:59

标签: c++ qt qt4 icons

我在编译时在磁盘上有一个png文件。我想将它包含在已编译的可执行文件中。 如何在Qt中定义这样的图标?

3 个答案:

答案 0 :(得分:9)

您基本上需要使用Qt资源系统 查看已编译资源 here

让我们说这是你的资源文件

<!DOCTYPE RCC><RCC version="1.0">
 <qresource>
     <file>images/copy.png</file>
     <file>images/cut.png</file>
     <file>images/paste.png</file>
 </qresource>
</RCC>

在您的源代码中,您现在可以通过引用资源中的图像来创建QIcons

QIcon(":/images/cut.png")

不要忘记在.pro

中引用资源文件
 RESOURCES = application.qrc

This example使用资源文件中的图像作为图标

答案 1 :(得分:6)

作为Qt资源系统的替代方案,您可以使用(您最喜欢的图像转换实用程序)将.png文件转换为.xpm格式,然后将这些行添加到.cpp文件中:

#include "my_converted_image.xpm"
[...]
QPixmap myPixmap((const char **) my_converted_image_xpm);

...其中my_converted_image_xpm是在.xpm文件顶部附近声明的字符数组的名称。这是因为.xpm图像格式实际上只是C源代码,声明了一个位图的字符数组,QPixmap知道如何解析,例如:

/* XPM */
static const char * const my_converted_image_xpm[] = {
"16 16 65 1",
"       c None",
".      c #0F0F04",
[...]
"                "};

答案 2 :(得分:0)

如果您使用的是Qt-Creator,则可以使用资源编辑器。只需创建一个新的资源文件,添加前缀并添加文件。 Qt-Creator会自动将其添加到项目文件中。之后,从您的资源中选择您的图像,然后选择您的图片