/*****CFileDialog.h*****/
#ifndef CFILEDIALOG_H
#define CFILEDIALOG_H
#include <QObject>
#include <QFileDialog>
class CFileDialog : public QFileDialog
{
Q_OBJECT
public:
CFileDialog(QWidget *parent = 0);
~CFileDialog();
public slots:
void onChiose();
};
#endif // CFILEDIALOG_H
/***********CFileDialog.cpp**********/
#include "CFileDialog.h"
#include <QListView>
#include <QTreeView>
#include <QDialogButtonBox>
CFileDialog::CFileDialog(QWidget *parent)
: QFileDialog(parent)
{
this->setOption(QFileDialog::DontUseNativeDialog,true);
//支持多选
QListView *pListView = this->findChild<QListView*>("listView");
if (pListView)
pListView->setSelectionMode(QAbstractItemView::ExtendedSelection);
QTreeView *pTreeView = this->findChild<QTreeView*>();
if (pTreeView)
pTreeView->setSelectionMode(QAbstractItemView::ExtendedSelection);
QDialogButtonBox *pButton = this->findChild<QDialogButtonBox *>("buttonBox");
disconnect(pButton, SIGNAL(accepted()), this, SLOT(accept()));//使链接失效
connect(pButton, SIGNAL(accepted()), this, SLOT(onChiose()));//改成自己的槽
}
CFileDialog::~CFileDialog()
{
}
void CFileDialog::onChiose()
{
QDialog::accept();
}
CFileDialog fileDialog;
if ( fileDialog.exec() == QDialog::accept())
{
qDebug() << fileDialog.selectedFiles();
}