myfileselect.h
#ifndef MYFILESELECT_H
#define MYFILESELECT_H
#include <QWidget>
#include <QFileDialog>
#include <QListView>
#include <QTreeView>
#include <QDialogButtonBox>
class myFileSelect :public QFileDialog
{
Q_OBJECT
public:
explicit myFileSelect(QWidget *parent = 0);
signals:
public slots:
void go();
};
#endif // MYFILESELECT_H
myfileselect.cpp
#include "myfileselect.h"
myFileSelect::myFileSelect(QWidget *parent) :
QFileDialog(parent)
{
}
void myFileSelect::go()
{
QDialog::accept();
}
main.cpp
#include "myfileselect.h"
#include <QtGui/QApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
myFileSelect *a =new myFileSelect(this);
a->setOption(QFileDialog::DontUseNativeDialog,true);
//支持多选
QListView *listView = a->findChild<QListView*>("listView");
if (listView)
listView->setSelectionMode(QAbstractItemView::ExtendedSelection);
QTreeView *treeView = a->findChild<QTreeView*>();
if (treeView)
treeView->setSelectionMode(QAbstractItemView::ExtendedSelection);
QDialogButtonBox *button = a->findChild<QDialogButtonBox *>("buttonBox");
disconnect(button,SIGNAL(accepted()),a,SLOT(accept()));//使链接失效
connect(button,SIGNAL(accepted()),a,SLOT(go()));//改成自己的槽
if(a->exec()==QDialog::Accepted)
{
qDebug()<<a->selectedFiles();
}
return a.exec();
}
参考:http://blog.youkuaiyun.com/redpetallsg/article/details/7008853