我目前正在用 Qt 编写一个应用程序,它基本上是一个仓库。应用程序读取 CSV,使用户能够处理它并能够显示每件商品的图片。我尝试使用 QLabel 和 Pixmap 显示图片,但是即使文件在同一个文件夹中并且提供的名称完全正确,也没有任何反应。是资源问题还是我的代码以某种方式失败?是否可以在不将图像添加到资源的情况下显示图像,以避免手动添加许多照片?
void ImageViewer::viewImage(QString imgName)
{
QString pathWithName = imgName;
pathWithName.append(".jpg");
ui->label->setPixmap( QPixmap(pathWithName) );
ui->label->show();
update();
}
对于帖子创建或此处显示的代码中的任何错误,我们深表歉意 - 这是我的第一篇帖子。
编辑: 我正在将 MainWindow 中的代码(在我的项目中称为 CsvReader)添加到我调用方法 viewImage 的方式中:
void CsvReader::on_imgView_clicked()
{
ImageViewer* img = new ImageViewer(this);
img->setModal(true);
img->exec();
QModelIndex List selInd ui->tableView->selectionModel()->selectedIndexes();
QString id = model->item(selInd.first().row(), 0)->text();
img->viewImage(id);
}
编辑 2: 解决了。必须使用 QDir 更改路径:
QDir* directory = new QDir("/home/kokos/Magazyn/photos");
QFileInfo checkFile(*directory, pathWithName);
提前致谢, 科科斯
最佳答案
首先确认您的文件的位置和存在。添加这个;
QFileInfo checkFile(pathWithName);
if (checkFile.exists() && checkFile.isFile()) {
// your code
}
关于c++ - 显示Qt资源中没有的图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34144372/