QFileDialog使用

QFileDIalog

QFileDIalog是 Qt 中用于文件打开和保存的对话框,允许用户遍历文件系统,以选择一个或多个文件或目录。

基本用法

getOpenFileName

打开文件对话框,函数原型:
[static] QString QFileDialog::getOpenFileName(QWidget parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString selectedFilter = nullptr, QFileDialog::Options options = …)
一般只提供前几个参数:

QString fileName = QFileDialog::getOpenFileName(this, tr(“Open File”),
“/home”,
tr("Images (
.png *.xpm *.jpg)"));
得到的对话框类似下图,对话框中的标签:文件名,打开,取消这些都是中文。有时想用英文,怎么办?把参数补充完整。
在这里插入图片描述

    fileName =QFileDialog::getOpenFileName(this,"open a c file",".",tr("Files(*.c)"),\
                                           nullptr,QFileDialog::DontUseNativeDialog);

对话框效果类似如下:
在这里插入图片描述

getSaveFileName

保存文件对话框,函数原型:
[static] QStringList QFileDialog::getOpenFileNames(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = …)
用法大致与getOpenFileName一致。

定制对话框

QFileDialog类提供了一些Set函数可以定制对话框属性。

    QFileDialog *p = new QFileDialog();
    p->setOption(QFileDialog::DontUseNativeDialog,true);
    p->setWindowTitle("Select a C file");
    p->setNameFilter(tr("Files(*.c)"));
    p->setDirectory(".");
    p->setViewMode(QFileDialog::List);
    p->setFileMode(QFileDialog::ExistingFiles);
    p->show();
    QStringList myCfile;

    if (p->exec())
    {      myCfile = p->selectedFiles();
        ...
        }

在这里插入图片描述

setOption 启用或清除选项,常用的即DontUseNativeDialog。
setViewMode设置路径或文件是list或者detail形式显示。
setFileMode指示用户可以在文件对话框中选择什么,即如果用户单击确定,对话框将返回什么。

  • AnyFile:文件名,不管它是否存在。
  • ExistingFile:单个现有文件的名称。
  • Directory:目录的名称。显示文件和目录。
  • ExistingFiles:零个或多个现有文件的名称。

setAcceptMode设置打开或保存,AcceptOpen为打开,AcceptSave为保存,默认AcceptOpen。setLabelText可以设置对话框标签文本。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值