• 12725阅读
  • 9回复

【提问】怎么用QFileDialog打开文件家中的所有文件?? [复制链接]

上一主题 下一主题
离线harney
 
只看楼主 正序阅读 楼主  发表于: 2005-12-08
想实现只要选中文件家,就可以返回文件家中所有文件列表到QStringList,看了QFileDialog的文档,好像没有合适的函数,哪位知道怎么弄?谢谢~~
[ 此贴被XChinux在2005-12-08 19:38重新编辑 ]
离线snow_2012
只看该作者 9楼 发表于: 2012-05-14
我找到一个自认为比较野蛮的方法
QStringList Widget::getAllFileNames(){
    QStringList fileNames;
    QString dir=QFileDialog::getExistingDirectory(this,tr("选择文件夹"),"",
                                                  QFileDialog::ShowDirsOnly
                                                  | QFileDialog::DontResolveSymlinks);
    QDir musicDir(dir);
    fileNames=musicDir.entryList(QStringList()<<"*.mp3"<<"*.wma"<<"*.wav",QDir::Files);
    for(int i=0;i<fileNames.size();i++){
        fileNames=dir+"/"+fileNames;
    }
    return fileNames;
}
离线snow_2012
只看该作者 8楼 发表于: 2012-05-14
回 1楼(XChinux) 的帖子
我也在纠结这个问题,一楼能不能用代码实现下,帮个忙行不
离线onglu
只看该作者 7楼 发表于: 2009-08-29
目录是获得了,那要如何看到目录下面的所有文件了?楼主只问了这么一个问题,你们唧唧喳喳的也没回答出来?网上看到这帖子才进来的,本想解决自己的问题,没想到你们也没给出个答案来!
离线sunyilong
只看该作者 6楼 发表于: 2008-12-30
QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
            ".", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);

这样可以获得你所要选择的目录
离线sunyilong
只看该作者 5楼 发表于: 2008-12-30
期待大虾解决这个问题啊,急
离线sinl

只看该作者 4楼 发表于: 2006-04-07
所以我说QT的QFileDialog类是个鸡肋嘛,不能同时选择目录和文件,也不能按照文件类型来选择,比如不能选择只显示可执行文件(Linux下)
离线sky_hao

只看该作者 3楼 发表于: 2006-03-31
请问,你是要同时打开很多文件是吗?我做过,调用这个函数:
QStringList fileName = QFileDialog::getOpenFileNames(0,0,"/mnt","*.mp3",0,0);
这个就可以支持同时打开多个mp3文件.
QStringList fileName = QFileDialog::getOpenFileName(0,0,"/mnt","*.mp3",0,0);
这个就只能打开一个mp3文件,起到过滤作用,其它格式的文件是不能显示的

仅仅想通过打开一个文件夹就把所有的文件打开好像没有直接可以调用的函数:(
离线sinl

只看该作者 2楼 发表于: 2006-03-30
干脆你自己把QFileDialog重新实现一下吧,我觉得现在的QFileDialog简直就是鸡肋,很多功能没有
比如,不能同时选择文件和文件夹,不能按照文件属性过滤(比如我只想找linux系统文件目录下面的可执行文件)
在线XChinux

只看该作者 1楼 发表于: 2005-12-08
把QFileDialog设置为使用选择目录方式,然后你自己取得目录名后就能通过其它方式获得这个目录下的文件列表了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个