zoukankan      html  css  js  c++  java
  • 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();
    }
  • 相关阅读:
    设计模式——装饰模式(Decorator Pattern)
    设计模式——策略模式(Strategy Pattern)
    设计模式——简单工厂模式(SimpleFactory Pattern)
    入博客园三周年记
    android+Service
    surfaceView+canvas+paint+bitmap
    Enable Sublime text 2 to support GBK in Mac
    androidstudio+opencv
    mac下的环境变量PATH
    Curl命令
  • 原文地址:https://www.cnblogs.com/qnkk123/p/6704461.html
Copyright © 2011-2022 走看看