QT 打开文件对话框汇总
參数2:对话框的标题
參数3:默认的打开的位置,如”我的文档“等
參数4:文件的过滤器。注意文件类型之间用 ;; 分开
QString fileName0;
fd->resize(240,320); //设置显示的大小
fd->setFilter( "Allfile(*.*);;mp3file(*.mp3);;wmafile(*.wma);;wavefile(*.wav)"); //设置文件过滤器
fd->setViewMode(QFileDialog::List); //设置浏览模式,有 列表(list) 模式和 具体信息(detail)两种方式
{
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);
}
fd->setViewMode( QFileDialog::Detail );
//Detail显示 具体的文件日期大小, List为普通情况
fd->setFilter( "Images (*.png *.xpm *.jpg)" );
以下是设定多个过滤器。一定要以;;隔开(两个分号)
QString filters="C file(*.c *.cpp *.h);;pic(*.png *.xpm)";
fd->setFilters(filters);
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用法
QStringList slist;
slist.append("string1");
slist += "string2";
slist << "string3" << "string4";
for(QStringList::Iterator it=slist.begin();it!=slist.end();it++) qWarning(*it);
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(", ")));
    }
版权声明:本文博主原创文章,博客,未经同意不得转载。
QT 打开文件对话框汇总的更多相关文章
- Qt打开文件对话框
		
项目中需要打开文件对话框,就查了一下,不得不说Qt的帮助文档做的真好,非常详细.要实现这个功能有两种方式,使用QFileDialog的静态方法,实例化QFileDialog对象. 基本算是照抄帮助文档 ...
 - Qt打开文件对话框同时选中多个文件或单个文件
		
Qt中打开单个文件 //str_path为文件路径 QString str_path = QFileDialog::getOpenFileName(this, tr("选择转码文件" ...
 - 4.使用CFileDialog打开文件对话框,获得文件路径 -windows编程
		
引言:没想到2022年还有很多工业软件公司依然使用MFC,微软也一直在更新MFC的库,这次使用MFC封装的CFileDialog类,写一个获得选定文件路径,名称,扩展名的程序. 个人技术博客(文章整理 ...
 - java中文件保存、打开文件对话框
		
package com.soft.test; //AWT: FileDialog类 + FilenameFilter类 可以实现本功能 //Swing: JFileChooser类 + FileFil ...
 - C# OpenFileDialog打开文件对话框(详解)
		
一.打开文件对话框(OpenFileDialog) 1. OpenFileDialog控件的基本属性 InitialDirectory:对话框的初始目录 Filter: 获取或设置当前文件名筛选器字符 ...
 - [javaSE] GUI(打开文件对话框)
		
使用FileDialog可以打开文件对话框,根据模式不同,可以分为打开文件和保存文件对话框 获取FileDialog对象,new出来,参数:所属Frame对象,String的标题,FileDialog ...
 - WebBrowser自动填充打开文件对话框
		
WebBrowser自动填充打开文件对话框 在使用WebBrowser编写自动表单填写软件的时候,不知道大家是否遇到国填写文件选择表单的情况.遇到这种情况的时候,无法直接队Html元素赋值,必须模 ...
 - QT打开文件路径中含有中文和空格问题
		
使用qt-mingw版做的软件,发给客户以后说工作不正常,配置文件无法打开,或者加载数据文件不正常.远程查看以后,发现客户经常将程序放置在中文带空格的路径下,导致文件打开不正常.所以最近想在程序上解决 ...
 - win10  只要打开文件对话框就卡死解决方法
		
我电脑的问题是:win10系统,只要打开 文件对话框就卡死,假死,cpu100% 一直没有解决,但是只要把缩略图关了,就ok. 但是又想要留着缩略图,还是得显示,于是乎一直在找解决办法. 此方法好像可 ...
 
随机推荐
- 离别·伤
			
天边露出尖尖的小月 青涩似梦 一点萤火虫落在时光的蘋 搜索 若然恍惚 莺归晚巢 日隐西山 至此予你别过 未曾听你轻启朱唇 未曾见你合身回眸 风,走过紫罗兰花 淡淡的香绕过你的长发 ...
 - FZU2181+poj2942(点双连通+判奇圈)
			
分析:我们对于那些相互不憎恨的人连边,将每次参加会议的所有人(不一定是全部人,只需人数>=3且为奇数)看做一个点双联通分量,那么每个点都至少有两个点与他相邻.即需要保证双联通分量中存在奇圈.至于 ...
 - Redis的字典(dict)rehash过程源代码解析
			
Redis的内存存储结构是个大的字典存储,也就是我们通常说的哈希表.Redis小到能够存储几万记录的CACHE,大到能够存储几千万甚至上亿的记录(看内存而定),这充分说明Redis作为缓冲的强大.Re ...
 - 158个JAVA免豆精品资料汇总
			
附件完整版下载地址: http://down.51cto.com/data/431561 附件部分预览~ java中国移动收费系统[源代码] http://down.51cto.com/data/70 ...
 - WPF界面设计技巧(8)—自制山寨版CheckListBox
			
原文:WPF界面设计技巧(8)-自制山寨版CheckListBox 近年来IT市场山寨横行啊,我们今天也来发扬一下山寨精神,搞个自制的CheckListBox出来. 喏,CheckListBox 就是 ...
 - Android 自己实现 NavigationView [Design Support Library(1)]
			
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/46405409: 本文出自:[张鸿洋的博客] 一.概述 Google I/O 2 ...
 - HDU5015 233 Matrix(矩阵高速幂)
			
HDU5015 233 Matrix(矩阵高速幂) 题目链接 题目大意: 给出n∗m矩阵,给出第一行a01, a02, a03 ...a0m (各自是233, 2333, 23333...), 再给定 ...
 - Maven 中配置 Urlrewrite 基本配置
			
1. 在maven项目的pom.xml文件里加入: <!-- URL Rewrite --> <dependency> <groupId>org.tuckey< ...
 - zoj3822 期望dp
			
每天在一个n*m的棋盘上放棋子,问使得每一行,每一列都有棋子的期望天数 dp[n][m][k] 表示用k个棋子占据了n行,m列,距离目标状态还需要的期望天数 那么dp[n][m][k] = p1 * ...
 - log4net和一般的记录日志方法
			
下载 http://files.cnblogs.com/crazyair/log4net.zip 1 在web项目中新建一个 Log4Net.config <?xml version=" ...