Qt 同时选择文件和文件夹(可多选)

Posted 积跬步,到千里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 同时选择文件和文件夹(可多选)相关的知识,希望对你有一定的参考价值。

/*****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();
}

 

以上是关于Qt 同时选择文件和文件夹(可多选)的主要内容,如果未能解决你的问题,请参考以下文章

html如何做下拉的可多选的复选框列表

html如何做下拉的可多选的复选框列表

javascript 可多选的下拉框 multiselect 动态删除option值,动态添加option值,动态生成表格

input file实现多选和限制文件上传类型

一个类别和带分页的可多选表格的实现方案

网页制作中,做那种可多选的勾选框怎么做?