在Qt中,我们想要通过对话框来打开某一个图片,可以通过使用QFileDialog来快速实现,参见以下代码:
QString fileName = QFileDialog::getOpenFileName(this, tr("Load Image"), "", tr("Images (*.png *.bmp *.jpg *.tif *.GIF);;All Files (*)")); if (fileName.isEmpty()) { return; } QImageReader reader(fileName); const QImage newImage = reader.read(); if (newImage.isNull()) { QMessageBox::information(this, QGuiApplication::applicationDisplayName(), tr("Cannot load %1: %2") .arg(QDir::toNativeSeparators(fileName), reader.errorString())); return; } const QPixmap pix = QPixmap::fromImage(newImage); ui.imgLable->setPixmap(pix.scaled(size,Qt::IgnoreAspectRatio)));
保存图片可以使用如下代码:
QString fileName = QFileDialog::getSaveFileName(this, tr("Save Image"), "", tr("Images (*.png *.bmp *.jpg *.tif *.ppm *.GIF);;All Files (*)")); if (fileName.isEmpty()) { return; } image0.save(fileName);
类似内容请参见我之前的博客QDialog, QFileDialog 和 QDesktopServices 的使用方法。