当前位置: 首页 > wzjs >正文

天津做美缝的网站做汽配外贸哪个网站

天津做美缝的网站,做汽配外贸哪个网站,永川集团网站建设,深圳求职网站哪个好欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 1.引言2.简单介绍2.1成员函数2.1.1静态成员函数(最常用)2.1.2核心成员函数2.1.3实用功能函数**获取选择结果** 3.实验3.1实验1【打开存在的文件】3.2实验二【创建新文件】3.3实…

欢迎来到 破晓的历程的 博客

⛺️不负时光,不负己✈️

文章目录

    • 1.引言
    • 2.简单介绍
      • 2.1成员函数
        • 2.1.1静态成员函数(最常用)
        • 2.1.2核心成员函数
        • 2.1.3实用功能函数
        • **获取选择结果**
    • 3.实验
      • 3.1实验1【打开存在的文件】
      • 3.2实验二【创建新文件】
      • 3.3实验三【选择如干个文件】
    • 4.总结

1.引言

在上一节课中,所在文件的路径被我们硬编程到了代码中,我们无法进行选择,那么有没有一种方式让我们可以自由的选择文件呢?有的兄弟,有的!像这样的有QFileDialog

QFileDialog 是 Qt 框架中用于文件对话框的类,它提供了让用户选择文件或目录的标准对话框。这个类是 Qt Widgets 模块的一部分,继承自 QDialog 类。

2.简单介绍

如果在代码中使用到 QFileDialog,须包含头文件 #include <QFileDialog>,其构造函数有很多,常用的为:

QFileDialog(QWidget *parent = nullptr, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString())

参数说明

  1. parent (QWidget指针,默认为nullptr)
    • 指定对话框的父窗口
    • 设置父窗口有助于对话框的模态行为和内存管理
    • 如果为nullptr,对话框将作为顶级窗口
  2. caption (QString,默认为空字符串)
    • 对话框的标题文字
    • 例如:“打开文件”、"保存文件"等
  3. directory (QString,默认为空字符串)
    • 对话框打开时显示的初始目录
    • 可以是绝对路径或相对路径
    • 如果为空,将使用上次访问的目录或系统默认目录
  4. filter (QString,默认为空字符串)
    • 文件过滤器,用于限制显示的文件类型
    • 格式为:“描述 (.扩展名);;描述 (.扩展名)”
    • 例如:“Images (.png *.jpg);;Text files (*.txt);;All files (.*)”

2.1成员函数

QFileDialog的成员函数很多,下列罗列最常用的成员函数:

2.1.1静态成员函数(最常用)
  1. getOpenFileName()

    • 功能:弹出标准"打开文件"对话框

    • 参数:父窗口指针、标题、初始目录、文件过滤器

    • 返回:用户选择的单个文件路径(QString

    • 示例:

      QString file = QFileDialog::getOpenFileName(this, "打开文件", "/home", "文本文件 (*.txt)");
      
  2. getSaveFileName()

    • 功能:弹出标准"保存文件"对话框

    • 参数:同上

    • 返回:用户输入的保存路径(QString

    • 示例:

      QString savePath = QFileDialog::getSaveFileName(this, "保存文件", "/home/untitled.txt", "PDF文件 (*.pdf)");
      
  3. getExistingDirectory()

    • 功能:选择目录对话框

    • 参数:父窗口指针、标题、初始目录

    • 返回:选择的目录路径(QString

    • 示例:

      QString dir = QFileDialog::getExistingDirectory(this, "选择文件夹", "/home");
      
  4. getOpenFileNames()

    • 功能:多文件选择对话框

    • 参数:同getOpenFileName()

    • 返回:用户选择的多个文件路径(QStringList

    • 示例:

      QStringList files = QFileDialog::getOpenFileNames(this, "选择多个文件", "/home", "图片 (*.png *.jpg)");
      

2.1.2核心成员函数
  1. 文件模式控制
    • setFileMode(QFileDialog::FileMode)
      可选模式:
      • AnyFile:输入任意文件名(用于保存)
      • ExistingFile:选择单个现有文件
      • Directory:仅选择目录
      • ExistingFiles:选择多个现有文件
  2. 过滤器设置
    • setNameFilter(const QString&)
      示例:dialog.setNameFilter("文本文件 (*.txt);;CSV文件 (*.csv)");
  3. 对话框行为
    • setAcceptMode(QFileDialog::AcceptMode)
      可选模式:
      • AcceptOpen:打开文件模式
      • AcceptSave:保存文件模式
  4. 视图设置
    • setViewMode(QFileDialog::ViewMode)
      可选模式:
      • List:简单列表视图
      • Detail:带详细信息的视图

2.1.3实用功能函数
  1. 获取选择结果
    • selectedFiles():返回用户选择的文件路径列表(QStringList
    • selectedNameFilter():返回当前选择的过滤器名称(QString
  2. 路径设置

    • setDirectory(const QString&):设置初始目录
    • setDefaultSuffix(const QString&):设置默认文件后缀(如自动补全.txt
  3. 选项配置

    • setOption(QFileDialog::Option, bool)
      常用选项:
      • DontUseNativeDialog:强制使用Qt风格对话框
      • ReadOnly:禁止编辑文件名
      • ShowDirsOnly:仅显示目录

3.实验

3.1实验1【打开存在的文件】

实验目的

打开存在的文件,并读取文件内的内容;

实验代码

#include <QApplication>     // 提供 Qt 应用程序的主类
#include <QFileDialog>      // 提供文件选择对话框功能
#include <QStringList>      // 提供字符串列表类
#include <QString>          // 提供字符串类
#include <QMessageBox>      // 提供消息对话框(未使用,但可以用于弹窗提示)
#include <QFile>            // 提供文件读写操作类
#include <QDebug>           // 提供调试输出功能int main(int argc, char *argv[])
{// 创建一个 Qt 应用程序对象QApplication app(argc, argv);// 弹出文件选择对话框,让用户选择一个文件QString fileName = QFileDialog::getOpenFileName(nullptr,                        // 父窗口为 nullptr,表示无父窗口"打开文件",                     // 文件对话框的标题"D:/王涵",                     // 初始打开目录"所有文件 (*.*);;图片 (*.png *.jpg)"  // 文件过滤器,显示所有文件和常见图片文件);// 判断用户是否选择了文件(如果点击“取消”,则 fileName 会是空字符串)if (!fileName.isEmpty()){// 输出用户选择的文件路径到调试信息qDebug() << "选择的文件:" << fileName;QFile file;                // 创建一个文件对象file.setFileName(fileName); // 设置文件路径为用户选择的路径// 以只读 + 文本方式打开文件file.open(QIODevice::ReadOnly | QIODevice::Text);// 使用 QTextStream 流对象读取文本内容QTextStream out(&file);// 持续读取每一行,直到文件结束while (!out.atEnd()){QString str_len = out.readLine(); // 读取一行文本qDebug() << str_len;              // 输出读取的内容}file.close(); // 关闭文件}else{// 用户没有选择任何文件(可能点击了“取消”按钮)qDebug() << "用户取消了选择";}return app.exec(); // 进入 Qt 主事件循环
}

实验现象

image-20250514134158076

3.2实验二【创建新文件】

实验目的

在文件选择框中,在某一地址下创建一个新的文件,并在文件中写入内容!

实验代码

#include <QApplication>     // Qt GUI 应用程序的核心类,必须包含
#include <QFileDialog>      // 提供文件对话框(打开/保存)的功能
#include <QStringList>      // 提供字符串列表类型(本例中其实没用到,可移除)
#include <QString>          // 提供 QString 字符串类型
#include <QMessageBox>      // 用于弹出提示框(本例中未使用,可移除)
#include <QFile>            // 文件操作的核心类(读写文件)
#include <QDebug>           // 提供调试输出功能(用于输出日志)int main(int argc, char *argv[])
{QApplication app(argc, argv);  // 初始化 Qt 应用程序,必须有,argc/argv 负责传递命令行参数// 弹出“保存文件”的对话框,用户可以选择要保存的路径和文件名QString fileName = QFileDialog::getSaveFileName(nullptr,                             // 父窗口为 nullptr,表示无主窗口"打开文件",                          // 对话框标题(建议修改为“保存文件”更合理)("D:/王涵/save.txt"),               // 默认路径和文件名(可修改为用户目录等)"所有文件 (*.*);;图片 (*.png *.jpg);;文本文件(*.txt)"  // 可选择的文件类型过滤器);// 判断用户是否选择了文件(如果取消保存对话框,fileName 就是空字符串)if (!fileName.isEmpty()){qDebug() << "选择的文件:" << fileName;  // 输出用户选择的文件路径QFile file;                      // 创建一个 QFile 文件对象file.setFileName(fileName);     // 设置文件的路径和名称为用户选择的 fileName// 尝试以“写入 + 文本模式”打开文件,如果文件不存在,会自动创建// 注意:若打开失败应检查路径是否有效、权限是否足够if (file.open(QIODevice::WriteOnly | QIODevice::Text)){QTextStream in(&file);      // 创建文本流,用于向文件中写入文本内容// 向文件中写入 0 到 4 的数字,每个数字占一行for (uint i = 0; i < 5; i++){in << i << "\r\n";      // "\r\n" 是 Windows 格式的换行符(也可以用 Qt::endl)}file.close();               // 写入完成后关闭文件,释放资源}else{// 如果打开失败,输出错误信息qDebug() << "文件打开失败:" << file.errorString();}}else{qDebug() << "用户取消了选择";  // 用户点击了“取消”按钮,没有进行保存操作}return app.exec();  // 启动 Qt 应用程序主事件循环(本例中其实可以直接 return 0)
}

实验现象

成功在指定文件路径下的指定文件中写入了指定的内容:

image-20250514135930443

3.3实验三【选择如干个文件】

实验目的

可以一次选择若干个存在的文件,并打印文件的路径

实验代码

#include <QApplication>
#include <QFileDialog>
#include <QStringList>
#include <QString>
#include <QMessageBox>
#include <QFile>
#include <QDebug>int main(int argc, char *argv[])
{QApplication app(argc, argv);  // 初始化 Qt 应用程序对象// 弹出“打开多个文件”的文件对话框QStringList fileName = QFileDialog::getOpenFileNames(nullptr,                            // 无父窗口"打开文件",                         // 对话框标题"D:/王涵/",                         // 默认打开路径"所有文件 (*.*);;图片 (*.png *.jpg);;文本文件 (*.txt)"  // 文件过滤器,注意必须是第4个参数);// 如果用户选择了文件if (!fileName.isEmpty()){// 遍历用户选择的所有文件路径foreach(QString file, fileName){qDebug() << file;  // 输出每个文件的完整路径}}else{qDebug() << "用户取消了选择";  // 用户点击了“取消”按钮}return app.exec();  // 启动 Qt 事件循环(本例中可用 return 0 替代)
}

实验现象

image-20250514141110861

4.总结

本文我们学习了在QT中如何使用 QFileDialog这一重要的类,并给出详细的示例。

我们明白了文件选择常常和打开文件,操作文件等操作联系在一起,形成一套完整的操作流。

附录

image-20250514141353444

http://www.dtcms.com/wzjs/818128.html

相关文章:

  • 1G免费网站空间网站建设工资多少
  • 安徽做网站的公司有哪些我想开个网站平台怎么开呢
  • 做网上贸易哪个网站好聚美优品
  • 网站设计 psd做网站需要注意的风险
  • 做网站的学什么湖南常德文理学院
  • 网站设计制作价格怎么样网站信息做参考文献
  • 网站建设优化推广哈尔滨一起做网站17杭州女装
  • 西安手机网站制作的公司wordpress后台密码破解
  • 企业网站的建设一般要素有在线制作网站免费
  • 买拆车件上什么网站下载简历模板免费
  • 作风建设网站首页吉安县规划建设局网站
  • 示范高校建设网站商城平台系统下载
  • 网站强制分享链接怎么做的进入兔展网站做PPt
  • 网站建设师薪资成都房产网站建设
  • a5源码网站学会网页设计找什么工作
  • 做感恩网站的图片素材wordpress 标签html代码
  • 网站不备案打不开黄页app下载
  • 南京网站制作工具网站建设宗旨是什么
  • flash个人网站首页模板wordpress织梦帝国
  • 学校网站建设报价表广西南宁公司网站制作
  • 投资做网站电子商务平台开发内容
  • 网站建设规划书范文5000字中国建设银行黑龙江支行官方网站
  • 青岛做网站公小程序怎么开发自己的
  • 有了主机和域名后如何做网站手机销售网站怎么做的
  • 网站免费建站 图标网站建设seo优化价格
  • 网站开发+兼职挣钱吗网站建设评比
  • 美食网站页面设计源代码企业网站建站元素
  • 怎么制作一个自己的网站前端页面设计网站
  • 泰安建站哪家好国内三大oa系统
  • 做网站apache如何筑巢网站建设