首页 > 其他分享 >QFileDialog 文件对话框

QFileDialog 文件对话框

时间:2024-10-22 17:16:48浏览次数:7  
标签:文件 const 对话框 QFileDialog 参数 QString 返回值 QIODevice

一、 QFileDialog 文件对话框

与QMessageBox一样,QFileDialog继承了QDialog,是一个用于选择要打开或保存的文件(目录)的模态对话框。因此也使用静态成员函数进行弹窗,对话框的结果(选择的文件或目录的路径)也通过返回值表达。

// 获得要打开或保存的单文件路径

// 参数1:父窗口

// 参数2:windowTitle属性

// 参数3:打开窗口时所在的路径,默认为构建目录

// 参数4:文件类型过滤器

// 返回值:选择的文件路径,选择失败返回空字符串

QString QFileDialog::​getOpen(Save)FileName(

QWidget * parent = 0,

const QString & caption = QString(),

const QString & dir = QString(),

const QString & filter = QString()

需要注意的是,QFileDialog是一个纯UI类,本身不具备任何IO能力。

二、QFileInfo 文件信息类

此类的使用只需要获得对象后调用各种成员函数返回所需信息即可,包括但不限于以下函数:

// 构造函数

// 参数:文件路径

QFileInfo::​QFileInfo(const QString & file

// 上次修改日期和时间

// 返回值:包含修改日期和时间的QDateTime对象

QDateTime QFileInfo::​lastModified() const

// 返回文件的可读性

bool QFileInfo::​isReadable() const

三、QFile 文件读写类(掌握)

QFile类间接继承了QIODevice类,QIODevice是Qt所有IO类的基类,内部包含了最基础的IO接口。QFile类可以对文件和目录进行IO操作,本节中标记QIODevice类的函数在后续其他派生类中通用。

相关函数如下:

// 构造函数

// 参数为文件路径

QFile::​QFile(const QString & name)

// 打开读写流

// 参数:打开模式

// 返回值:打开是否成功

bool QIODevice::​open(OpenMode mode)

// 判断数据流是否处于尾部

bool QIODevice::​atEnd() const

// 读取数据

// 参数:一次性读取的最大字节数

// 返回值:携带读取数据的字节数组,QByteArray是Qt的字节数组类

QByteArray QIODevice::​read(qint64 maxSize)

// 写出数据

// 参数:要写出的数据

// 返回值:实际写出的写出的字节数,-1表示错误

qint64 QIODevice::​write(const QByteArray & byteArray)

// 关闭流

void QIODevice::​close() 

// 清空输出缓存区

// 返回值为是否成功

bool QFileDevice::​flush()

// 返回流数据的字节数

qint64 QIODevice::​size() const 

四、UI操作与耗时操作(掌握)

在默认情况下,Qt只有一个线程,也被成为主线程(UI线程),此线程主要的任务保证Qt程序正常执行、UI正常显示与交互。

但是一些耗时操作(例如IO或其他复杂算法),如果在主线程中执行,就会导致主线程原本的工作被阻塞,程序就会出现“假死”状态。

操作系统检测到程序出现“假死”状态,并不能确定程序是真死还是假死,因此弹窗让用户自行判断。

 

标签:文件,const,对话框,QFileDialog,参数,QString,返回值,QIODevice
From: https://blog.csdn.net/weixin_63207763/article/details/143080270

相关文章

  • shell脚本技巧—创建和清空文件
    写这篇文章的起因是因为在分析一个脚本时,看到这么一句脚本,如下所示................................>$RMAN_BACKUP/script/rman_backup.sql................................最开始我以为它就是将文件rman_backup.sql清空,这个类似于cat/dev/null>$RMAN_BACKUP/script/rman_......
  • 玄机蓝队靶场_应急响应_71:实战evtx-文件分析
    windows日志排查工具:https://www.cnblogs.com/starrys/p/17129993.htmlwindows日志事件ID,参考文章:https://peterpan.blog.csdn.net/article/details/139887217下载日志分析工具FullEventLogView.exehttps://www.nirsoft.net/utils/fulleventlogview-x64.zip分别打开三个......
  • 为什么在http协议中使用base64编码方式传输二进制文件
    相关:图解Base64实现原理并使用js实现一个简单的Base64编码器常用加密方法之Base64编解码及代码实现一直都知道在http协议中使用base64的方式传递二进制文件,虽然感觉不理解,但是也都从来没有探究过原因,今天突然看到这方面的资料,这才有了一些理解。PS:把带有图片的网页......
  • 操作系统中的文件操作
    当我们打开电脑,通过资源管理器查看文件时,可以看到各种属性:文件的名字、大小、创建时间等等。这些文件以一种直观的方式呈现在我们眼前,它们存储在外部存储器中,如硬盘或者SSD中。然而,当我们自己写程序操作这些文件时,这种简单的可视化就不够了。那么,如何用代码和这些文件进行交互?如何......
  • 磁力天堂视频下载时DLL文件不见了?这里提供解决方案
    当您在使用磁力天堂或者任何其他软件时遇到丢失DLL文件的提示,这通常意味着某个动态链接库文件(.dll)缺失或损坏,这个文件是Windows操作系统的一部分,也是很多应用程序运行所必需的。以下是一些可能的解决方法:重新安装软件:尝试卸载磁力天堂软件,然后从官方网站或可信来源重新下载......
  • 《斗罗大陆:猎魂世界》启动提示DLL文件丢失?简单几步轻松修复
    当您在启动《斗罗大陆:猎魂世界》游戏时遇到丢失DLL文件的错误提示,这通常意味着游戏运行所必需的一个或多个动态链接库文件缺失或损坏。以下是一些常见的解决方法:重新安装游戏:卸载游戏后,彻底删除游戏文件夹中的残留文件。从官方渠道下载最新版本的游戏安装程序,并进行全新安......
  • iOS开发 钥匙串中的证书无法导出(个人信息).p12文件
    解决方法1、直接把需要导出.p12的.cer文件复制粘贴到[钥匙串访问][登录]的分类下的文件中。然后就可以导出.p12文件了就是这么简单2、紧急提醒:如果上面的办法不行那么先执行下面的事情重新生成.cer文件再重新做1上面的事情。可能是Mac系统缺少AppleWWDRCA.cer证书。解决......
  • ArgoWorkflow教程(七)---高效的步骤间文件共享策略
    之前我们分析了使用artifact实现步骤间文件共享,今天分享一下如何使用PVC实现高效的步骤间文件共享。1.概述之前在artifact篇我们演示了如何使用artifact实现步骤间文件传递,今天介绍一种更为简单的文件传递方式:PVC共享。artifact毕竟是借助S3实现中转,效率上肯定是......
  • Day 9 文件基本处理 + 相(绝)对路径 + 文件打开方式 + 文件拷贝
    目录0昨日回顾字符编码1基本的文件处理1.1文件是什么?1.2如何使用文件1.3读取关闭1.4写2绝对路径与相对路径2.1绝对路径2.2相对路径3文件打开的三种方式3.1mode='r',只读3.2mode='w',只写,清空文件再写入3.3mode='a',追加,在后面追加写入文件3.4mode='rt',打开的......
  • 【Markdown速成】半小时入门Markdown(后缀.md文件详解)
    目录一.认识MarkdownMarkdownTypora二.Typora设置三.Markdown语法1.标题2.正文2.1分割线2.2删除线2.3下划线2.4斜体2.5粗体2.6斜粗体2.7高亮 2.8字体属性(大小及颜色)2.9对齐方式2.10引用3.列表有序列表无序列表 4.超链接5.表格6.代码一.认识Markdown......