在界面上采用QFileDialog类来使用对话框获取文件
首先需要包含相应的库
#include "QFileDialog"
然后采用getOpenFileName()函数来操作,在Windows上提供的是本地的对话框
示例如下:
QString imagefile;
imagefile = QFileDialog::getOpenFileName(this, "open image", "", tr("Images(*.png *.jpg")); //选择图片的对话框
if (imagefile != "")
{
m_init_image = imread(imagefile.toStdString()); //将图片文件名传递给变量
namedWindow("原始图片", CV_WINDOW_AUTOSIZE);
imshow("原始图片", m_init_image);
}
QFileDialog::getOpenFileName()函数的用法
QString QFileDialog::getOpenFileName (
QWidget * parent = 0,
const QString & caption = QString(),
const QString & dir = QString(),
const QString & filter = QString(),
QString * selectedFilter = 0,
Options options = 0 )
第一个参数parent,用于指定父组件。注意,很多Qt组件的构造函数都会有这么一个parent参数,并提供一个默认值0;
第二个参数caption,是对话框的标题;
第三个参数dir,是对话框显示时默认打开的目录,"." 代表程序运行目录,"/" 代表当前盘符的根目录(Windows,Linux下/就是根目录了),也可以是平台相关的,比如"C:\\"等;
第四个参数filter,是对话框的后缀名过滤器,比如我们使用"Image Files(*.jpg *.png)"就让它只能显示后缀名是jpg或者png的文件。如果需要使用多个过滤器,使用";;"分割,比如"JPEG Files(*.jpg);;PNG Files(*.png)";
第五个参数selectedFilter,是默认选择的过滤器;
第六个参数options,是对话框的一些参数设定,比如只显示文件夹等等,它的取值是enum QFileDialog::Option,每个选项可以使用 | 运算组合起来。