QFileDialog 文件对话框

一、 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或其他复杂算法),如果在主线程中执行,就会导致主线程原本的工作被阻塞,程序就会出现“假死”状态。

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值