Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自资源文件的Qt图像_Qt_Resources_Qimage - Fatal编程技术网

来自资源文件的Qt图像

来自资源文件的Qt图像,qt,resources,qimage,Qt,Resources,Qimage,我试图通过资源文件将图像插入到我的程序中,如下所示: <RCC> <qresource prefix="/"> <file>green.png</file> <file>other files</file> </qresource> </RCC> 我总是看到空消息,表明我做错了什么。一种解决方案可能是使用绝对路径,如 "C:\\Users\\user\

我试图通过资源文件将图像插入到我的程序中,如下所示:

<RCC>
    <qresource prefix="/">
        <file>green.png</file>
        <file>other files</file>
    </qresource>
</RCC>
我总是看到空消息,表明我做错了什么。一种解决方案可能是使用绝对路径,如

"C:\\Users\\user\\Documents\\project\\green.png",

这当然是可行的,但我更喜欢使用资源文件实现它。您能给我一些建议吗?

如果您的png文件与项目的.pro、.qrc和.cpp文件位于同一文件夹中,则所有这些都将起作用

例如,通常可以方便地将所有图像放置到特殊的子文件夹资源中。然后在.qrc中,该行将如下所示:

<file>Resources/green.png</file>

您是否记得在添加资源文件后运行qmake?

首先,您需要创建一个.qrc文件并将图像文件夹添加到其中

  • (图像文件夹必须包含在项目文件夹中)
  • 右键单击项目文件
  • 新增
  • Qt
  • Qt资源文件按Choose并执行其他步骤
  • 打开.qrc文件后,如果需要,必须按添加>添加前缀>更改前缀名称
  • 再次添加>添加文件>并选择图像
  • 然后转到mainwindow.cpp(在我的项目中)文件并调用图像,如下代码所示

    • 在我的例子中,图标文件夹是PlayerCons

  • 您的资源文件位于哪里?所有代码/资源文件都位于C:\Users\…\projectOdd中。你的例子对我很有用。我正在使用Linux+Qt4.8.6。试试Qt的一个示例(“系统托盘图标示例”包含qrc文件)。Win 8.1和Qt 5.4也适用于我。您是否从rcc收到任何错误消息?
    <file>Resources/green.png</file>
    
    QImage *green = new QImage(":/Resources/green.png");
    
    ui->play->setIcon(QIcon(":/Playericons/icons8-pause-30.png"));