QT 文件对话框(QFileDialog)

1.选择文件(上传、打开...)

1 QString QFileDialog::getOpenFileName(
2     QWidget *parent = 0,             //parent,用于指定父组件。注意,很多Qt组件的构造函数都会有这么一个parent参数,并提供一个默认值0;    
3     const QString &caption = QString(),    //caption,是对话框的标题
4     const QString &dir = QString(),      //dir,是对话框显示时默认打开的目录,"." 代表程序运行目录,"/" 代表当前盘符的根目录(Windows,Linux下/就是根目录了),也可以是平台相关的,比如"C:\\"等;
5     const QString &filter = QString(),    //filter,是对话框的后缀名过滤器,比如我们使用"Image Files(*.jpg *.png)"就让它只能显示后缀名是jpg或者png的文件。如果需要使用多个过滤器,使用";;"分割,比如"JPEG Files(*.jpg);;PNG Files(*.png)"
6     QString *selectedFilter = 0,        //selectedFilter,是默认选择的过滤器
7     Options options = 0);            //options,是对话框的一些参数设定,比如只显示文件夹等等,它的取值是enum QFileDialog::Option,每个选项可以使用 | 运算组合起来

getOpenFileName()函数参数比较多,比较难记Qt提供了另外的写法:

 1  QFileDialog *fileDialog = new QFileDialog(this); 
 2         fileDialog->setWindowTitle(tr("Open Image")); 
 3         fileDialog->setDirectory("."); 
 4         fileDialog->setFilter(tr("Image Files(*.jpg *.png)")); 
 5         if(fileDialog->exec() == QDialog::Accepted) { 
 6                 QString path = fileDialog->selectedFiles()[0]; 
 7                 QMessageBox::information(NULL, tr("Path"), tr("You selected ") + path); 
 8         } else { 
 9                 QMessageBox::information(NULL, tr("Path"), tr("You didn't select any files.")); 
10         }

这两种写法虽然功能差别不大,但是弹出的对话框却并不一样。getOpenFileName()函数在Windows和MacOS X平台上提供的是本地的对话框,而QFileDialog提供的始终是Qt自己绘制的对话框(还记得前面说过,Qt的组件和Swing类似,也是自己绘制 的,而不都是调用系统资源API)。

2.选择多个文件(一次选择多个上传)

1 QStringList QFileDialog::getOpenFileNames(QWidget *parent = 0,
2                              const QString &caption = QString(),
3                              const QString &dir = QString(),
4                              const QString &filter = QString(),
5                              QString *selectedFilter = 0,
6                              Options options = 0);

 

3.选择文件(保存文件)

QString QFileDialog::getSaveFileName(QWidget *parent = 0,
                                   const QString &caption = QString(),
                                   const QString &dir = QString(),
                                   const QString &filter = QString(),
                                   QString *selectedFilter = 0,
                                   Options options = 0);

4.选择文件路径(选择文件的默认下载路径):

1 QString getExistingDirectory(QWidget *parent = 0,
2                                         const QString &caption = QString(),
3                                         const QString &dir = QString(),
4                                         Options options = ShowDirsOnly);

 

转载:QT之文件对话框-http://www.cnblogs.com/ylan2009/archive/2012/05/06/2486606.html

posted @ 2015-04-26 13:46  yunsicai  阅读(12139)  评论(0编辑  收藏  举报