Qt 文件对话框的使用

环境

Qt14.2 MSVC

共同参数使用方式

QFileDialog::XXX(this, “标题”, “初始路径”(不写就默认项目路径), “筛选条件”, “默认选择的筛选条件”);

QWidget *parent = nullptr, 							//依赖的父窗口
const QString &caption = QString(), 				//标题
const QString &dir = QString(), 					//当前目录
const QString &filter = QString(), 					//写好的筛选条件,多个可用两个分号即;;隔开
QString *selectedFilter = nullptr, 					//默认被选择的筛选条件
QFileDialog::Options options = Options()			//选项枚举


QFileDialog::getOpenFileName(this,  
	tr("Open Image"), "/home/jana", tr("Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"));
// 如果想提供默认的文件名
// 只需要更改参数dir,其的末尾加上文件名即可,比如上面的jana实际是默认成为一个文件名,如果想变成目录,最后加个'/'即可

tr里可以通过语言家来进行修改,以实现中英切换。
值得注意的是,筛选条件的大小写不敏感。
.

QFileDialog::getOpenFileUrl与getOpenFileUrls

获取单个文件的文件路径,可获取远程文件,若QFileDialog::getOpenFileUrls就可以多个

QUrl("file:///D:/PrivateProject/testProject/testUtf8Qcc/Debug/ui_dialog.h")

QFileDialog::getOpenFileName与getOpenFileNames

获取单个文件的文件路径,若QFileDialog::getOpenFileNames就可以多个

"D:/PrivateProject/testProject/testUtf8Qcc/Debug/ui_mainwindow.h"

QFileDialog::getSaveFileUrl与getSaveFileName

设置自定义名称,或覆盖某文件(自己覆盖,只是提示),并拼接所在目录的路径

QUrl("file:///D:/PrivateProject/testProject/testUtf8Qcc/Debug/可以适当,cpp")
"D:/PrivateProject/testProject/testUtf8Qcc/Debug/可以适当,cpp"

QFileDialog::getExistingDirectory与getExistingDirectoryUrl

获取文件夹路径,与文件无关

QUrl("file:///D:/PrivateProject/testProject/testUtf8Qcc/Debug")
"D:/PrivateProject/testProject/testUtf8Qcc/Debug"

QFileDialog::getOpenFileContent

获取文件内容,但是不好用,界面比较粗糙

auto fileContentReady = [](const QString &fileName, const QByteArray &fileContent) {
	if (fileName.isEmpty()) {
        // No file was selected
	} else {
        // Use fileName and fileContent
        qDebug().noquote() << __FILE__ << __LINE__ << fileName << fileContent;
	}
};
QFileDialog::getOpenFileContent("Images (*.png *.xpm *.jpg)",  fileContentReady);
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

溪渣渣_梁世华

打赏?我甚至没有任何收费的章节

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

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

打赏作者

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

抵扣说明:

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

余额充值