qt从资源加载图像:没有指定输入文件错误

时间:2016-10-05 16:54:33

标签: c++ qt qpixmap qlabel

请注意:QT新手

我正在尝试使用setPixmap函数在qLabel上显示PNG。

注意:PNG尺寸<标签尺寸

example之后,它应该显示图像,但我没有运气。

我尝试了很多例子,从使用QImage到使用GraphicsViews等。

我已经通过指定QPixmap pixmap("full_path_here")中的完整路径来显示此图像,因此想要摆脱完整路径,尝试将此图像添加到资源填充,又称.qrc但是下面的错误仍然存​​在,我不知道为什么。

错误/opt/qt/Qt5.7.0/5.7/gcc_64/bin/rcc:-1: error: No input files specified.

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{


    ui->setupUi(this);
    QPixmap mypix (":/back.png");
    ui->label->setPixmap(mypix);

}

MainWindow::~MainWindow()
{
    delete ui;
}

.qrc资源文件

<RCC>
    <qresource prefix="/">
        <file>back.png</file>
    </qresource>
</RCC>

mainwindow.ui

<widget class="QLabel" name="label">
    <property name="geometry">
     <rect>
      <x>90</x>
      <y>20</y>
      <width>131</width>
      <height>121</height>
     </rect>
    </property>
    <property name="text">
     <string/>
    </property>
   </widget>

项目位置:

ll /home/cx/qt-projects/VPN/

total 48
drwxrwxr-x 1 cx cx   162 Oct  5 15:53 ./
drwxr-xr-x 1 cx cx    90 Oct  5 12:21 ../
-rw-rw-r-- 1 cx cx  1514 Oct  5 15:33 back.png
drwxrwxr-x 1 cx cx   108 Oct  5 12:12 .git/
-rw-rw-r-- 1 cx cx   172 Oct  5 10:41 main.cpp
-rw-rw-r-- 1 cx cx   393 Oct  5 15:53 mainwindow.cpp
-rw-rw-r-- 1 cx cx   399 Oct  5 15:25 mainwindow.h
-rw-rw-r-- 1 cx cx  3134 Oct  5 12:21 mainwindow.ui
drwxrwxr-x 1 cx cx     8 Oct  5 12:11 res/
-rw-rw-r-- 1 cx cx   400 Oct  5 12:12 VPN.pro
-rw-rw-r-- 1 cx cx 24064 Oct  5 12:35 VPN.pro.user

2 个答案:

答案 0 :(得分:0)

尝试将qrc文件更改为:

<!DOCTYPE RCC>
<RCC version="1.0">
<qresource>
<file>back.png</file>
</qresource>
</RCC>

答案 1 :(得分:0)

add_n文件中的文件路径必须可由RCC编译器在文件系统上找到。例如。例如,如果您的文件存在一个目录,那么您可以执行以下操作

.qrc

在您的示例中,RCC编译器正在<RCC> <qresource> <file>../back.png</file> </qresource> </RCC> 路径中查找文件,可能它不存在