Qt中 文件对话框QFileDialog 的使用
资料来源于Qt官方文档,我总结了其中常用到的部分:
一. 最简单的方法是调用静态函数来对话框获取文件:
1 2 3 4 |
QString file = QFileDialog::getOpenFileName( "/home/foxman", "Images (*.png *.xpm *.jpg)", this); |
这断代码可以建立一个取文件对话框,选择后OK将文件路径返回给file.
可以一次性打开多个文件,使用QStringList来保存打开的文件的路径
例如打开一些音乐文件
1 |
QStringList files = QFileDialog::getOpenFileNames(this, tr("Select Music Files"),QDesktopServices::storageLocation(QDesktopServices::MusicLocation)); |
二. 一般的文件对话框的使用
1 2 3 4 5 6 |
QFileDialog *fd=new QFileDialog(this,"file dlg",TRUE); if(fd->exec()==QFileDialog::Accepted) // ok { QString file=fd->selectedFile(); qWarning(s); } |
1. 几个设定选项:
a. 设定显示模式
1 |
fd->setViewMode( QFileDialog::Detail ); |
//Detail显示 详细的文件日期大小, List为一般情况
b. 设定过滤器
1 |
fd->setFilter( "Images (*.png *.xpm *.jpg)" ); |
下面是设定多个过滤器,一定要以;;隔开(两个分号)
1 2 |
QString filters="C file(*.c *.cpp *.h);;pic(*.png *.xpm)"; fd->setFilters(filters); |
c. 设定对话框返回什么
1 |
fd->setMode( QFileDialog::ExistingFile ); |
AnyFile(一般用于save as对话框)
ExistingFile存在的一个文件
ExistingFiles存在的0个或多个文件(可用于选择多个文件)
Directory返回目录
DirectoryOnly返回目录(选取文件的时候只选中目录)
2. 返回值:
a. 返回选择中的一个文件(夹)名字
1 |
QString s=fd->selectedFile(); |
b. 选取多个文件(一定要设定ExistingFiles模式)
1 2 3 |
QStringList slist=fd->selectedFiles(); for(QStringList::Iterator it=slist.begin();it!=slist.end();it++) //迭代器 qWarning(*it); |
附: 字符串列表QStringList使用方法
1. 可以以append、+、<< 方式添加元素
1 2 3 4 |
QStringList slist; slist.append("string1"); slist += "string2"; slist << "string3" << "string4"; |
2.迭代器取得每一个变量值
1 |
for(QStringList::Iterator it=slist.begin();it!=slist.end();it++) qWarning(*it); |
3. 一种使用方式
1 2 3 |
QString s = "Red/tGreen/tBlue"; QStringList colors = QStringList::split( "/t", s ); cout << colors.join( ", " ) << endl; |
输出: Red, Green, Blue
发表评论
要发表评论,您必须先登录。