Qt 添加资源文件qrc找不到的问题

假设有一个工程,添加的资源文件如下:

Qt 添加资源文件qrc找不到的问题_第1张图片

在程序中如下:

QPixmap pixmap(QString(":/image/waitting%1.png").arg(m_nIndex));
ui->waittingLabel->setPixmap(pixmap);

会发现是无法显示资源文件中的图片的

到qrc_project.cpp中我们会看到
Qt 添加资源文件qrc找不到的问题_第2张图片

所以此时想引用资源文件里面的图片  应该是 :/image/image/waitting1.png 而不是 :/image/waitting.png

对于资源文件认识:

参考 https://blog.csdn.net/dijkstar/article/details/48848915

  1. 各种资源文件会被编译成unsigned char,放到字节数组qt_resource_data[]中Qt 添加资源文件qrc找不到的问题_第3张图片
  2. 这些内容在编译的时候已经创建了,只能进行读操作,不能进行写操作
  3. 外部改动资源文件,都需要重新编译
  4. 当资源文件为文本文件时候要注意编码格式,要正确显示,或者为系统设置编码格式,或者在使用的时候明确编码格式
        void MainWindow::readResult(int exitCode)  
        {  
            if(exitCode == 0) {  
        #if defined(Q_OS_WIN32)  
                QTextCodec* gbkCodec = QTextCodec::codecForName("GBK");  
                QString result = gbkCodec->toUnicode(p->readAll());  
        #elif defined(Q_OS_LINUX)  
                QTextCodec* utfCodec = QTextCodec::codecForName("UTF-8");  
                QString result = utfCodec->toUnicode(p->readAll());  
        #endif  
                QMessageBox::information(this, "dir", result);  
            }  
        }  
  5. 可以将":/"传给QDir,然后可以获得其所有文件内容

你可能感兴趣的:(Qt)