ImageVerifierCode 换一换
格式:PPTX , 页数:36 ,大小:1.48MB ,
文档编号:5101745      下载积分:25 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5101745.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(Qt-5开发及实例-第9章-Qt-5文件及磁盘处理课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

Qt-5开发及实例-第9章-Qt-5文件及磁盘处理课件.pptx

1、第第9章章 Qt 5文件及磁盘处理文件及磁盘处理读写文本文件读写文本文件0101使用使用QFile类读写文本类读写文本使用使用QFile类读写文本类读写文本【例】【例】(简单)(CH901)建立基于控制台工程,使用QFile类读写文本文件。实现步骤如下。(1)建立一个工程。选择“文件”“新建文件或项目.”菜单项,在弹出的对话框中选择“项目”组下的“Application”“Qt Console Application”选项,单击“Choose.”按钮。(2)在弹出的对话框中对该工程进行命名并选择保存工程的路径,这里将工程命名为“TextFile”,单击“下一步”按钮,再次单击“下一步”按钮,最

2、后单击“完成”按钮,完成该文件工程的建立。使用使用QFile类读写文本类读写文本(3)源文件“main.cpp”的具体实现代码如下:#include#include#include int main(int argc,char*argv)QCoreApplication a(argc,argv);QFile file(textFile1.txt);/(a)if(file.open(QIODevice:ReadOnly)/(b)char buffer2048;qint64 lineLen=file.readLine(buffer,sizeof(buffer);/(c)if(lineLen!=-1

3、)/(d)qDebug()buffer;return a.exec();使用使用QFile类读写文本类读写文本其中,其中,(a)QFile file(textFile1.txt):打开一个文件有两种方式。一种方式是在构造函数中指定文件名;另一种方式是使用setFileName()函数设置文件名。(b)if(file.open(QIODevice:ReadOnly):打开文件使用open()函数,关闭文件使用close()函数。此处的open()函数以只读方式打开文件,只读方式参数为QIODevice:ReadOnly,只写方式参数为QIODevice:WriteOnly,读写参数为QIODev

4、ice:ReadWrite。(c)qint64 lineLen=file.readLine(buffer,sizeof(buffer):在QFile中可以使用从QIODevice中继承的readLine()函数读取文本文件的一行。(d)if(lineLen!=-1)qDebug()buffer;:如果读取成功,则readLine()函数返回实际读取的字节数;如果读取失败,则返回“-1”。使用使用QFile类读写文本类读写文本(4)选择“构建”“构建项目 TextFile”菜单项,首先编辑本例所用的文本文件“textFile1.txt”,保存在项目D:QtCH9CH901build-TextFi

5、le-Desktop_Qt_5_11_1_MinGW_32bit-Debug目录下,然后运行程序,运行结果如图9.1所示。0202使用使用QTextStream类读写文本类读写文本使用使用QTextStream类读写文本类读写文本【例】【例】(简单)(CH902)建立基于控制台的工程,使用QTextStream类读写文本文件。操作步骤与上节的实例类似,不再重复介绍。(1)源文件“main.cpp”的具体实现代码如下:#include#include#include int main(int argc,char*argv)QCoreApplication a(argc,argv);QFile d

6、ata(data.txt);if(data.open(QFile:WriteOnly|QFile:Truncate)/(a)QTextStream out(&data);outQObject:tr(score:)qSetFieldWidth(10)left90 endl;/(b)return a.exec();使用使用QTextStream类读写文本类读写文本其中,其中,(a)if(data.open(QFile:WriteOnly|QFile:Truncate):参数QFile:Truncate表示将原来文件中的内容清空。输出时将格式设为左对齐,占10个字符位置。(b)outQObject:

7、tr(score:)qSetFieldWidth(10)left90endl:用户使用格式化函数和流操作符设置需要的输出格式。其中,qSetFieldWidth()函数是设置字段宽度的格式化函数。除此之外,QTextStream还提供了其他一些格式化函数,见表9.1。函 数功 能 描 述qSetFieldWidth(int width)设置字段宽度qSetPadChar(QChar ch)设置填充字符qSetRealNumberPercision(int precision)设置实数精度使用使用QTextStream类读写文本类读写文本其中,其中,left操作符是QTextStream定义的类

8、似于中的流操作符。QTextStream还提供了其他一些流操作符,见表9.2。操 作 符作 用 描 述bin设置读写的整数为二进制数oct设置读写的整数为八进制数dec设置读写的整数为十进制数hex设置读写的整数为十六进制数showbase强制显示进制前缀,如十六进制(0 x)、八进制(0)、二进制(0b)forcesign强制显示符号(+,-)forcepoint强制显示小数点noshowbase不显示进制前缀noforcesign不显示符号uppercasebase显示大写的进制前缀lowercasebase显示小写的进制前缀uppercasedigits用大写字母表示lowercased

9、igits用小写字母表示fixed用固定小数点表示scientific用科学计数法表示left左对齐right右对齐center居中endl换行flush清除缓冲使用使用QTextStream类读写文本类读写文本(2)运行此程序后,可以看到在项目的D:QtCH9CH902build-TextFile2-Desktop_Qt_5_11_1_MinGW_32bit-Debug文件夹下自动建立了一个文本文件“data.txt”,打开后看到的内容如图9.2所示。第第9章章 Qt 5文件及磁盘处理文件及磁盘处理读写二进制文件读写二进制文件读写二进制文件读写二进制文件【例】【例】(简单)(CH903)使用

10、QDataStream读写二进制文件。(1)头文件“mainwindow.h”的具体代码如下:#include class MainWindow:public QMainWindow Q_OBJECTpublic:MainWindow(QWidget*parent=0);MainWindow();void fileFun();读写二进制文件读写二进制文件(2)源文件“mainwindow.cpp”的具体代码如下:#include mainwindow.h#include#include#include#include MainWindow:MainWindow(QWidget*parent):

11、QMainWindow(parent)fileFun();读写二进制文件读写二进制文件函数fileFun()完成主要功能,其具体代码如下:void MainWindow:fileFun()/*将二进制数据写到数据流*/(a)QFile file(binary.dat);file.open(QIODevice:WriteOnly|QIODevice:Truncate);QDataStream out(&file);/将数据序列化 out QString(tr(周何骏:);/字符串序列化 out QDate:fromString(1996/09/25,yyyy/MM/dd);out (qint32

12、)23;/整数序列化 file.close();/*从文件中读取数据*/(b)file.setFileName(binary.dat);if(!file.open(QIODevice:ReadOnly)qDebug()name birthday age;/获取字符串和整数 qDebug()name birthday age;file.close();读写二进制文件读写二进制文件其中,其中,(a)从从QFile file(binary.dat)到到file.close()之间的代码段:之间的代码段:每一个条目都以定义的二进制格式写入文件。Qt中的很多类型,包括QBrush、QColor、QDat

13、eTime、QFont、QPixmap、QString、QVariant等都可以写入数据流。QDataStream类写入了name(QString)、birthday(QDate)和age(qint32)这三个数据。注意,在读取时也要使用相同的类型读出。(b)从从file.setFileName(binary.dat)到到file.close()之间的代码段:之间的代码段:QDataStream类可以读取任意的以QIODevice为基类的类生成对象产生的数据,如QTcpSocket、QUdpSocket、QBuffer、QFile、QProcess等类的数据。可以使用QDataStream在Q

14、AbstractSocket一端写数据,在另一端使用QDataStream读取数据,这样就免去了烦琐的高低字节转换工作。读写二进制文件读写二进制文件(3)运行结果如图9.3所示。第第9章章 Qt 5文件及磁盘处理文件及磁盘处理目录操作与文件系统目录操作与文件系统0101文件大小及路径获取实例文件大小及路径获取实例文件大小及路径获取实例文件大小及路径获取实例【例】【例】(难度一般)(CH904)得到一个文件的大小和所在的目录路径。创建基于控制台的工程dirProcess.pro,前面已介绍过其建立步骤,这里不再赘述。源文件“main.cpp”的具体代码。运行结果如图9.4所示。本例项目编译后生成

15、的文件所在的目录是:D:/Qt/yuanshu/code/CH9/CH904/build-dirProcess-Desktop_Qt_5_11_1_MinGW_32bit-Debug该目录下debug文件夹大小为878KB,release文件夹大小为0B(空),编译生成的整个目录的总大小为952KB。0202文件系统浏览文件系统浏览文件系统浏览文件系统浏览【例】【例】(难度一般)(CH905)文件系统的浏览。创建工程FileView.pro,具体内容如下。(1)在头文件“fileview.h”中,类FileView继承自QDialog类,具体代码如下:#include#include#incl

16、ude#include#include#include#include class FileView:public QDialog Q_OBJECTpublic:FileView(QWidget*parent=0,Qt:WindowFlags f=0);FileView();void showFileInfoList(QFileInfoList list);public slots:void slotShow(QDir dir);void slotDirShow(QListWidgetItem*item);private:QLineEdit*fileLineEdit;QListWidget*f

17、ileListWidget;QVBoxLayout*mainLayout;文件系统浏览文件系统浏览(2)源文件“fileview.cpp”的具体代码如下:#include fileview.h#include#include FileView:FileView(QWidget*parent,Qt:WindowFlags f):QDialog(parent,f)setWindowTitle(tr(File View);fileLineEdit=new QLineEdit(tr(/);fileListWidget=new QListWidget;mainLayout=new QVBoxLayout

18、(this);mainLayout-addWidget(fileLineEdit);mainLayout-addWidget(fileListWidget);connect(fileLineEdit,SIGNAL(returnPressed(),this,SLOT(slotShow(QDir);connect(fileListWidget,SIGNAL(itemDoubleClicked(QListWidgetItem*),this,SLOT(slotDirShow(QListWidgetItem*);QString root=/;QDir rootDir(root);QStringList

19、string;string *;QFileInfoList list=rootDir.entryInfoList(string);showFileInfoList(list);文件系统浏览文件系统浏览槽函数slotShow()实现了显示目录dir下的所有文件,具体内容如下:void FileView:slotShow(QDir dir)QStringList string;stringclear();/首先清空列表控件 for(unsigned int i=0;iaddItem(tmp);else if(tmpFileInfo.isFile()QIcon icon(file.png);QStr

20、ing fileName=tmpFileInfo.fileName();QListWidgetItem*tmp=new QListWidgetItem(icon,fileName);fileListWidget-addItem(tmp);文件系统浏览文件系统浏览槽函数slotDirShow()根据用户的选择显示下一级目录的所有文件。其具体实现代码如下:void FileView:slotDirShow(QListWidgetItem*item)QString str=item-text();/将下一级的目录名保存在str中 QDir dir;/定义一个QDir对象 dir.setPath(fi

21、leLineEdit-text();/设置QDir对象的路径为当前目录路径 dir.cd(str)/根据下一级目录名重新设置QDir对象的路径 fileLineEdit-setText(dir.absolutePath();/(a)slotShow(dir);/显示当前目录下的所有文件文件系统浏览文件系统浏览(3)运行结果如图9.5所示。第第9章章 Qt 5文件及磁盘处理文件及磁盘处理获取文件信息获取文件信息获取文件信息获取文件信息【例】(简单)(CH906)利用QFileInfo类获得文件信息,如图9.6所示。获取文件信息获取文件信息工程FileInfo.pro的具体内容如下。(1)在头文件

22、“fileinfo.h”中,类FileInfo继承自QDialog类,此类中声明了用到的各种相关控件和函数,其具体内容。(2)源文件“fileinfo.cpp”的具体内容。槽函数slotFile()完成通过标准文件对话框获得所需要文件的文件名功能,其具体内容如下:void FileInfo:slotFile()QString fileName=QFileDialog:getOpenFileName(this,打开,/,files(*);fileNameLineEdit-setText(fileName);槽函数slotGet()通过QFileInfo获得具体的文件信息,其具体内容。(3)运行结

23、果如图9.6所示。第第9章章 Qt 5文件及磁盘处理文件及磁盘处理监视文件和目录变化监视文件和目录变化监视文件和目录变化监视文件和目录变化【例】(简单)(CH907)监视指定目录功能,介绍如何使用QFileSystemWatcher。工程fileWatcher.pro的具体内容如下。(1)在头文件“watcher.h”中,Watcher类继承自QWidget类,其具体内容如下:#include#include#include class Watcher:public QWidget Q_OBJECTpublic:Watcher(QWidget*parent=0);Watcher();publi

24、c slots:void directoryChanged(QString path);private:QLabel*pathLabel;QFileSystemWatcher fsWatcher;监视文件和目录变化监视文件和目录变化(2)源文件“watcher.cpp”的具体内容如下:#include watcher.h#include#include#include#include Watcher:Watcher(QWidget*parent):QWidget(parent)QStringList args=qApp-arguments();QString path;if(args.coun

25、t()1)/(a)path=args1;else path=QDir:currentPath();pathLabel=new QLabel;pathLabel-setText(tr(监视的目录:)+path);QVBoxLayout*mainLayout=new QVBoxLayout(this);mainLayout-addWidget(pathLabel);fsWatcher.addPath(path);connect(&fsWatcher,SIGNAL(directoryChanged(QString),this,SLOT(directoryChanged(QString);/(b)监视文件和目录变化监视文件和目录变化响应函数directoryChanged()使用消息对话框提示用户目录发生了改变,具体实现代码如下:void Watcher:directoryChanged(QString path)QMessageBox:information(NULL,tr(目录发生变化),path);(3)运行结果如图9.7所示。

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|