选择文件夹或文件

时间:2011-11-22 08:59:58

标签: qt

在Qt中有没有办法只使用一个对话框来选择文件或文件夹?

我的意思是我想要一个选项,让我们称之为选择,并且通过使用此用户,可以从同一个对话框中选择文件夹或文件。

1 个答案:

答案 0 :(得分:0)

没有内置的小部件,但很容易将QDirModel连接到QTreeView并获取选择信号。

这是一个让你入门的例子:

<强> TEST.CPP

#include <QtGui>

#include "print.h"

int main(int argc, char** argv)
{
    QApplication app(argc, argv);

    QDirModel mdl;
    QTreeView view;
    Print print(&mdl);

    view.setModel(&mdl);
    QObject::connect(
        view.selectionModel(),
        SIGNAL(currentChanged(const QModelIndex&,const QModelIndex&)),
        &print,
        SLOT(currentChanged(const QModelIndex&,const QModelIndex&)));
    view.show();

    return app.exec();
}

<强> print.h

#ifndef _PRINT_H_
#define _PRINT_H_
#include <QtGui>

class Print : public QObject
{
    Q_OBJECT
    public:
        Print(QDirModel* mdl);
        ~Print();
    public slots:
        void currentChanged(const QModelIndex& current, const QModelIndex&);
    private:
        QDirModel* mModel;
        Q_DISABLE_COPY(Print)
};

#endif

<强> print.cpp

#include "print.h"

Print::Print(QDirModel* mdl) : QObject(0), mModel(mdl) {}
Print::~Print() {}

void Print::currentChanged(const QModelIndex& current, const QModelIndex&)
{
    qDebug() << mModel->filePath(current);
}