Qt中QImage.load()怎么加载中文文件名的图片?
sqlfd 2012-07-13 01:10:46 先获取指定目录下的文件名(这个文件名已经包含了这个指定目录)
QList <QString> picturelistbiao;
filters<<"*.jpg"<<"*.png"<<"*.bmp"<<"*.gif";
QDirIterator iter("/home/sql/picture",filters,dir.filter(), QDirIterator::Subdirectories);
int im=0;
while (iter.hasNext()) {
iter.next();
QFileInfo info = iter.fileInfo();
if (info.isFile()) {
QString name;
name=QString("%1. %2").arg(im+1).arg(info.baseName());
ui->listWidget->addItem(name);
picturelistbiao.append(info.filePath());
im++;
}
}
int picturenum=ui->listWidget->count();
然后根据文件名加载显示图片
picturem++;
QByteArray ba=picturelistbiao[picturem].toLatin1();
na=ba.data();
image.load(na);********************
pixmap=QPixmap::fromImage(image.scaled(size(),Qt::KeepAspectRatio));
spixmap=pixmap.scaled(780,370,Qt::KeepAspectRatio);
ui->label->setPixmap(spixmap);
如果文件名不含中文字符,就正常。含有中文字符的时候图片就显示不了了,提示
QImage::scaled: Image is a null image
QPixmap::scaled: Pixmap is a null pixmap
帮忙解决一下!!谢谢