• Qt学习总结之QFileDialog


    一.描述

    QFileDialog提供了一个对话框,允许用户选择文件或者目录,也允许用户遍历文件系统,用以选择一个或多个文件或者目录。

    QFileDialog继承了QDialog,具有父类的各种方法。

    二.功能作用

    1.最简单的获取方法(静态方法)
    获取文件

    QFileDialog::getOpenFileName()    //获取一个打开文件的文件名
    QFileDialog::getOpenFileNames()   //获取多个打开文件的文件名
    QFileDialog::getOpenFileUrl()     //获取一个打开文件的统一资源定位符
    QFileDialog::getOpenFileUrls()    //获取多个打开文件的统一资源定位符
    QFileDialog::getSaveFileName()    //获取保存的文件名
    QFileDialog::getSaveFileUrl()     //获取保存的url
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    我们来演示一下:

    m_fileDialog->getOpenFileName(this,"选择cpp文件","./","ALL(*.*)、Images(*.png *.jpg)、CPP文件(*.cpp)");
    
    • 1

    效果如图:
    在这里插入图片描述

    参数说明:

    选择cpp文件—>文件对话框名
    ./—>路径
    ALL(.)、Images(*.png .jpg)、CPP文件(.cpp)")—>文件过滤选项

    打印的文件名:
    在这里插入图片描述

    获取文件夹

    QFileDialog::getExistingDirectory()
    QFileDialog::getExistingDirectoryUrl()

    例:

    QString dir_name = m_fileDialog->getExistingDirectory(this,"选择文件夹","./");
    m_edit->append(dir_name);
    
    • 1
    • 2

    在这里插入图片描述
    在这里插入图片描述

    2.接收模式

    因为QFileDialog分为打开和保存两种模式,默认情况是打开文件的。但是我们也可以通过下面的代码把他设置成为保存模式的。

    m_fileDialog->setAcceptMode(QFileDialog::AcceptOpen);
    
    QFileDialog::AcceptOpen	//打开模式
    QFileDialog::AcceptSave	//保存模式
    
    • 1
    • 2
    • 3
    • 4

    3.默认后缀

    如果我们希望文件名称是带有默认后缀的,可以用下面的方法

    m_fileDialog->setDefaultSuffix(".h");
    
    • 1

    4.设置文件模式(文件/文件夹)

    通过下面的方法可以设置要操作的对象是文件还是文件夹

    QFileDialog::setFileMode(FileMode mode)
    #QFileDialog::FileMode中FileMode枚举值
    AnyFile   任意文件,无论是否存在
    ExistingFile  已存在的文件
    Directory     文件夹
     ExistingFiles  0个或多个现有文件
    DirectoryOnly  只能为目录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    5.设置名称过滤器

    m_fileDialog->setNameFilter("test");
    
    • 1

    6.信息显示的详细程度

    m_fileDialog->setViewMode(QFileDialog::Detail);
    m_fileDialog->setViewMode(QFileDialog::List);
    
    • 1
    • 2

    7.打开对话框

    打开对话框除了前面用的open()以外,还可以通过由返回值的exec()来使用(和父类QDialog的返回方法是一样的)

    三、常用信号

    void fileSelected(const QString &file);
    void filesSelected(const QStringList &files);
    void currentChanged(const QString &path);
    void directoryEntered(const QString &directory);
    
    void urlSelected(const QUrl &url);
    void urlsSelected(const QList<QUrl> &urls);
    void currentUrlChanged(const QUrl &url);
    void directoryUrlEntered(const QUrl &directory);
    
    void filterSelected(const QString &filter);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    2021年初行政区划数据
    JavaScript之WebAPI
    SpringCloud-Gateway路由动态配置Nacos实现
    一起Talk Android吧(第三百九十九回:获取Bitmap的方法总结)
    工业网关在物联网云平台上的作用
    ByteV数字孪生实际应用案例-智慧矿山篇
    【Python零基础入门篇 · 1】:print()函数的使用和转义字符、原字符总结
    11 编译2022年最新的Linux kernel 6.1源码,并用QEMU模拟器运行
    短视频如何展现效果更佳?不用类型的短视频有不同的侧重点
    图纸透明加密:保护机械图纸安全的新方法
  • 原文地址:https://blog.csdn.net/qq_27726087/article/details/126703976