假设有一个工程,添加的资源文件如下:
在程序中如下:
QPixmap pixmap(QString(":/image/waitting%1.png").arg(m_nIndex));
ui->waittingLabel->setPixmap(pixmap);
会发现是无法显示资源文件中的图片的
到qrc_project.cpp中我们会看到
所以此时想引用资源文件里面的图片 应该是 :/image/image/waitting1.png 而不是 :/image/waitting.png
对于资源文件认识:
参考 https://blog.csdn.net/dijkstar/article/details/48848915
- 各种资源文件会被编译成unsigned char,放到字节数组qt_resource_data[]中
- 这些内容在编译的时候已经创建了,只能进行读操作,不能进行写操作
- 外部改动资源文件,都需要重新编译
- 当资源文件为文本文件时候要注意编码格式,要正确显示,或者为系统设置编码格式,或者在使用的时候明确编码格式
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); } }
- 可以将":/"传给QDir,然后可以获得其所有文件内容