一、 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