Qstring fileName = QFileDialog::getOpenFileName(this, tr("open file"), " ",  tr("Allfile(*.*);;mp3file(*.mp3)"));  
说明:这样就会产生一个对话框,和系统的资源管理器差点儿相同的。返回的是你选择文件的 绝对路径。
參数1:父窗体

參数2:对话框的标题

參数3:默认的打开的位置,如”我的文档“等

參数4:文件的过滤器。注意文件类型之间用  ;;  分开
二:
QStringList    fileNameList;

QString fileName0; 
QFileDialog* fd = new QFileDialog(this);//创建对话框

fd->resize(240,320);    //设置显示的大小

fd->setFilter( "Allfile(*.*);;mp3file(*.mp3);;wmafile(*.wma);;wavefile(*.wav)"); //设置文件过滤器

fd->setViewMode(QFileDialog::List);  //设置浏览模式,有 列表(list) 模式和 具体信息(detail)两种方式
if ( fd->exec() == QDialog::Accepted )   //假设成功的运行

{

fileName0 = fd->selectedFiles();      //返回文件列表的名称

fileName = fileNameList[0];            //取第一个文件名称

}

else

fd->close();


资料来源于Qt官方文档,我总结了当中经常使用到的部分:
一.  最简单的方法是调用静态函数来对话框获取文件:

  QString file = QFileDialog::getOpenFileName(

                    "/home/foxman",

                    "Images (*.png *.xpm *.jpg)",

                    this);

     这断代码能够建立一个取文件对话框,选择后OK将文件路径返回给file.

        

二. 一般的文件对话框的使用

  QFileDialog *fd=new QFileDialog(this,"file dlg",TRUE);

    if(fd->exec()==QFileDialog::Accepted) // ok

    {

       QString file=fd->selectedFile();

      qWarning(s);

    }
  1. 几个设定选项:
   a. 设定显示模式

     fd->setViewMode( QFileDialog::Detail );

     //Detail显示 具体的文件日期大小, List为普通情况
   b. 设定过滤器

      fd->setFilter( "Images (*.png *.xpm *.jpg)" );

     以下是设定多个过滤器。一定要以;;隔开(两个分号)

     QString filters="C file(*.c *.cpp *.h);;pic(*.png *.xpm)";

     fd->setFilters(filters);
  c.  设定对话框返回什么

    fd->setMode( QFileDialog::ExistingFile );

    AnyFile(一般用于save as对话框)

   ExistingFile存在的一个文件

   ExistingFiles存在的0个或多个文件(可用于选择多个文件)

   Directory返回文件夹

   DirectoryOnly返回文件夹(选取文件的时候仅仅选中文件夹) 

 

  2. 返回值:

     a. 返回选择中的一个文件(夹)名字

        QString s=fd->selectedFile();

     b. 选取多个文件(一定要设定ExistingFiles模式)

         QStringList slist=fd->selectedFiles();   

               for(QStringList::Iterator it=slist.begin();it!=slist.end();it++) //迭代器

                 qWarning(*it);


附: 字符串列表QStringList用法
 1. 能够以append、+、<< 方式加入元素

    QStringList slist;

    slist.append("string1");

    slist += "string2";

    slist << "string3" << "string4";
2.迭代器取得每个变量值

       for(QStringList::Iterator it=slist.begin();it!=slist.end();it++)  qWarning(*it);
3. 一种使用方式

    QString s = "Red\tGreen\tBlue";

     QStringList colors = QStringList::split( "\t", s );

     cout << colors.join( ", " ) << endl;

     输出:   Red, Green, Blue
 
 

Qt 打开文件对话框

1.打开单个文件

QString filename = QFileDialog::getOpenFileName(

   this,

   "Open Document",

   QDir::currentPath(),

   "Document files (*.doc *.rtf);;All files(*.*)");

if (!filename.isNull()) { //用户选择了文件

   // 处理文件

   QMessageBox::information(this, "Document", "Has document", QMessageBox::Ok | QMessageBox::Cancel);

} else // 用户取消选择

   QMessageBox::information(this, "Document", "No document", QMessageBox::Ok | QMessageBox::Cancel);

2. 能够选定多个文件的文件打开对话框



    QFileDialog::Options options;

    if (!native->isChecked())

        options |= QFileDialog::DontUseNativeDialog;

    QString selectedFilter;

    QStringList files = QFileDialog::getOpenFileNames(

                                this, tr("QFileDialog::getOpenFileNames()"),

                                openFilesPath,

                                tr("All Files (*);;Text Files (*.txt)"),

                                &selectedFilter,

                                options);

    if (files.count()) {

        openFilesPath = files[0];

        openFileNamesLabel->setText(QString("[%1]").arg(files.join(", ")));

    }

转自http://blog.csdn.net/lpdpzc/article/details/9010801

版权声明:本文博主原创文章,博客,未经同意不得转载。

QT 打开文件对话框汇总的更多相关文章

  1. Qt打开文件对话框

    项目中需要打开文件对话框,就查了一下,不得不说Qt的帮助文档做的真好,非常详细.要实现这个功能有两种方式,使用QFileDialog的静态方法,实例化QFileDialog对象. 基本算是照抄帮助文档 ...

  2. Qt打开文件对话框同时选中多个文件或单个文件

    Qt中打开单个文件 //str_path为文件路径 QString str_path = QFileDialog::getOpenFileName(this, tr("选择转码文件" ...

  3. 4.使用CFileDialog打开文件对话框,获得文件路径 -windows编程

    引言:没想到2022年还有很多工业软件公司依然使用MFC,微软也一直在更新MFC的库,这次使用MFC封装的CFileDialog类,写一个获得选定文件路径,名称,扩展名的程序. 个人技术博客(文章整理 ...

  4. java中文件保存、打开文件对话框

    package com.soft.test; //AWT: FileDialog类 + FilenameFilter类 可以实现本功能 //Swing: JFileChooser类 + FileFil ...

  5. C# OpenFileDialog打开文件对话框(详解)

    一.打开文件对话框(OpenFileDialog) 1. OpenFileDialog控件的基本属性 InitialDirectory:对话框的初始目录 Filter: 获取或设置当前文件名筛选器字符 ...

  6. [javaSE] GUI(打开文件对话框)

    使用FileDialog可以打开文件对话框,根据模式不同,可以分为打开文件和保存文件对话框 获取FileDialog对象,new出来,参数:所属Frame对象,String的标题,FileDialog ...

  7. WebBrowser自动填充打开文件对话框

    WebBrowser自动填充打开文件对话框   在使用WebBrowser编写自动表单填写软件的时候,不知道大家是否遇到国填写文件选择表单的情况.遇到这种情况的时候,无法直接队Html元素赋值,必须模 ...

  8. QT打开文件路径中含有中文和空格问题

    使用qt-mingw版做的软件,发给客户以后说工作不正常,配置文件无法打开,或者加载数据文件不正常.远程查看以后,发现客户经常将程序放置在中文带空格的路径下,导致文件打开不正常.所以最近想在程序上解决 ...

  9. win10 只要打开文件对话框就卡死解决方法

    我电脑的问题是:win10系统,只要打开 文件对话框就卡死,假死,cpu100% 一直没有解决,但是只要把缩略图关了,就ok. 但是又想要留着缩略图,还是得显示,于是乎一直在找解决办法. 此方法好像可 ...

随机推荐

  1. php学习之道:WSDL具体解释(三)

    通过声明方式定义绑定(binding)属性 假设你在服务中採用SOAP binding.你能够使用JAX-WS来指定一定数量的属性binding. 这些属性指定相应你在WSDL中指定的属性.某些设置. ...

  2. OC 获取城市首字母

    解析依据文件中面的内容,读入一个城市,输出所在首字母 比方读入 长春 输出 c 读入 北京 输出 b 不知道文本中的字体是什么格式 读取文件时 程序不能正确执行 运用oc中的字典 initWithOb ...

  3. xcode 改动整个项目名

    目标为:将项目名XCD4改成xcd5. 先上结果图:==> 1.在左側的导航区域点击两次项目名,两次间隔时间略微长些,项目名会变成可编辑状态. 将名称改动为xcd5后按enter键弹出一个对话框 ...

  4. hdu4586(概率、期望)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4586 题意:有一个色子,n面,每面有个分值a[i],其中有m面比较特殊,当该面出现时,可以再投一次.求 ...

  5. hdu1081(最大子矩阵)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1081 分析:a[i][j]代表第i行,前j个数据的和:那么由a[i][j]可得sum[k][long] ...

  6. 《effective java》读书札记第三条用私有构造器或者枚举类型强化Singleton属性

    Singleton指只被实例化一次的类.一般用来搞那些创建很耗资源或者要求系统中只能有一个实例的类. 这个很经常使用.记得曾经实习面试的时候就有这个面试题. 一般採用的方法是将构造器私有化,然后提供一 ...

  7. ServiceProvider实现

    ServiceProvider实现揭秘 [总体设计 ] 本系列前面的文章我们主要以编程的角度对ASP.NET Core的依赖注入系统进行了详细的介绍,如果读者朋友们对这些内容具有深刻的理解,我相信你们 ...

  8. 算法学习 - 图的广度优先遍历(BFS) (C++)

    广度优先遍历 广度优先遍历是非经常见和普遍的一种图的遍历方法了,除了BFS还有DFS也就是深度优先遍历方法.我在我下一篇博客里面会写. 遍历过程 相信每一个看这篇博客的人,都能看懂邻接链表存储图. 不 ...

  9. Android Ant 和 Gradle 打包流程和效率对照

    一.Ant 打包:(下载ant.配置环境变量就不说了) 1.进入命令行模式,并切换到项目文件夹.运行例如以下命令为ADT创建的项目加入ant build支持: android update proje ...

  10. Windows Phone开发(9):关于页面状态

    原文:Windows Phone开发(9):关于页面状态 按照一般做法,刚学会如何导航,还是不够的,因为要知道,手机里面的每个页面,就如同Web页面一样,是无状态的. 啥是无状态?如果我们玩过Web开 ...