Qt学习总结之QFileDialog

42 篇文章 1 订阅
36 篇文章 9 订阅
本文介绍了Qt中的QFileDialog类,如何实现文件和目录的选取,包括静态方法、模式设置、后缀设置、文件类型选择以及常用信号。通过实例演示了如何创建并使用对话框获取文件名、文件夹路径,以及定制其行为。
摘要由CSDN通过智能技术生成

一.描述

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

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

二.功能作用

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

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

我们来演示一下:

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

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

参数说明:

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

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

获取文件夹

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

例:

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

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

2.接收模式

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

m_fileDialog->setAcceptMode(QFileDialog::AcceptOpen);

QFileDialog::AcceptOpen	//打开模式
QFileDialog::AcceptSave	//保存模式

3.默认后缀

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

m_fileDialog->setDefaultSuffix(".h");

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

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

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

5.设置名称过滤器

m_fileDialog->setNameFilter("test");

6.信息显示的详细程度

m_fileDialog->setViewMode(QFileDialog::Detail);
m_fileDialog->setViewMode(QFileDialog::List);

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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式小龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值