lpdpzc的专栏

一: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]; //取第一个文件名}elsefd->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);

业精于勤,荒于嬉;行成于思,毁于随。

lpdpzc的专栏

相关文章:

你感兴趣的文章:

标签云: