4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射(
新建项目13IO
|
13IO.pro |
|
HEADERS MyWidget.h SOURCES MyWidget.cpp QT CONFIG |
|
MyWidget.h |
#ifndef MYWIDGET_H #define MYWIDGET_H #include <QWidget> class MyWidget : public QWidget {
Q_OBJECT public: explicit MyWidget(QWidget *parent); signals: public slots: }; #endif // MYWIDGET_H |
|
MyWidget.cpp |
#include "MyWidget.h" #include <QFile> #include <QApplication> //#include <QDebug> //#include <QBuffer> //#include <QLabel> //#include <QTextStream> //#include <QDataStream> /** * QFile * QBuffer //memory file * QTcpSocket * QUdpSocket * * QDataStream * QTextStream */ MyWidget::MyWidget(QWidget *parent) : QWidget(parent) {
//QT中不建议使用char *这种类型的数据类型 QFile file("../MyTest.txt");
file.open(QIODevice::ReadWrite); file.write(QByteArray("abc"));
//同样,QFile中也有如下方法 //file.seek(); //file.write(); file.close(); } int main(int argc,char** argv) {
QApplication app(argc,argv); MyWidget w; w.show(); return app.exec(); } |
|
运行结果: 生成的MyTest.txt文件的内容如下: |
|
2 |
|
#include #include #include #include //#include //#include //#include /** * * * * * * * */ MyWidget::MyWidget(QWidget QWidget(parent) { QBuffer buffer.open(QIODevice::ReadWrite); buffer.write("abc"); buffer.write("aabbcc"); buffer.close(); //可以知道buffer中存储的是缓冲区,通过下面的方式看看buffer中的内容是什么 qDebug() } int { QApplication MyWidget w.show(); return } |
|
运行结果: |
|
3 QBuffer |
|
#include #include #include #include #include //#include //#include /** * * * * * * * */ MyWidget::MyWidget(QWidget QWidget(parent) { // QBuffer //不要路径,因为它的内容是写在内存里面的。 buffer.open(QIODevice::ReadWrite); QPixmap //pixmap的save实际上有两个参数,保存成相应的文件的时候要指定相应的格式,PNG是不是真,JPG是失真的。JPG是有损压缩,PNG是无损压缩。 pixmap.save(&buffer, buffer.close(); qDebug() // QPixmap //通过loadFromData把它收起来。 pixmap2.loadFromData(buffer.buffer(), QLabel* label->setPixmap(pixmap2); } int { QApplication MyWidget w.show(); return } |
|
运行结果: |
|
4 QByteArray和QString之间的区别 |
|
#include #include #include #include #include //#include //#include /** * * * * * * * */ MyWidget::MyWidget(QWidget QWidget(parent) { //关于QByteArray和QString //QByteArray个字节 QByteArray //QSting中有自己字符,它的大小就是几个字符 QString qDebug() } int { QApplication MyWidget w.show(); return } |
|
5 QTextStream和QDataStream的区别 |
|
#include #include #include //#include #include //#include #include //#include /** * * * * * * * */ MyWidget::MyWidget(QWidget QWidget(parent) { QFile //QTextStream需要一个QIODevice来构造它 file.open(QIODevice::ReadWrite); QTextStream //通过下面的方式可以写文件,并且文件内容中是正常的 textStream file.close(); //运行之后,在项目所在目录下发现多了teststream.txt文件,文件内容如下: #if //如果想写进去很方便读出来的话使用DataStream QFile file.open(QIODevice::ReadWrite); QDataStream dataStream << "abc" file.close(); //上面的运行结果如下: #endif } int { QApplication MyWidget w.show(); return } |
|
6 |
#include "MyWidget.h" #include <QApplication> #include <QDebug> //#include <QBuffer> #include <QFile> //#include <QLabel> #include <QTextStream> //#include <QDataStream> /** * QFile * QBuffer //memory file * QTcpSocket * QUdpSocket * * QDataStream * QTextStream */ MyWidget::MyWidget(QWidget *parent) : QWidget(parent) {
//虚拟内存和内存映射,QFile可以自动创建文件 QFile file("../map.txt");
file.open(QIODevice::ReadWrite); //扩展文件的大小为64k file.seek(64 * 1024); // file.write("1");
//文件关闭 file.close(); //然后再通过ReadWrite的方式构造它 file.open(QIODevice::ReadWrite); //构造内存映射 uchar* ptr = file.map(0,64*1024); //可以像指针一样来操作文件内容 *ptr = 'a'; ptr[1] = 'b'; //read file uchar ch = *ptr; file.unmap(ptr); file.close(); } int main(int argc,char** argv) {
QApplication app(argc,argv); MyWidget w; w.show(); return app.exec(); } //运行结果: |
4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射(的更多相关文章
- 4.关于QT中的QFile文件操作,QBuffer,Label上加入QPixmap,QByteArray和QString之间的差别,QTextStream和QDataStream的差别,QT内存映射(
新建项目13IO 13IO.pro HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets network CON ...
- paip.c++ qt 目录遍历以及文件操作
paip.c++ qt 目录遍历以及文件操作 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/a ...
- QFile文件操作-QT
#include <QCoreApplication> #include<QFile> #include<QString> #include<QDebug&g ...
- Qt之课外实践——文件操作(简单清道夫)
说明:这个小项目是关于文件操作的.主要的功能有:重复文件的查找(根据文件的大小),说白了,就是讲大小相同的文件在一起显示出来,供用户自由的选择删除.这个360云盘里的文件去重还差的很远.还有空文件夹的 ...
- Qt中与文件目录相关操作
一.与文件目录操作有关操作. Qt中与文件目录相关的操作在QDir中,需加入#include <QDir>语句. QDir::drives()是列出电脑根目录下的所有目录,返回的是QFil ...
- qt中执行 sql文件的方法
由于qt中没有原生的执行sql文件的方法.因此我们需要根据sql文件中的流的特点,将其分解成一个个语句单独执行. 1.首先通过Qfile读取sql文件 2.将sql文件中的内容通过“:”进行拆解 3. ...
- Qt中MySQL数据库的操作例程
数据库连接不成功时,要将libmysql.dll放到C:\Qt\Qt5.11.0\5.11.0\mingw53_32\bin和C:\Qt\Qt5.11.0\5.11.0\msvc2017_64\bin ...
- QT中的pro文件的编写
原地址:http://blog.csdn.net/fjb2080/article/details/4833666 我们在编译QT的工程的时候,一般都会让qmake自动生成,但有时我们需要定制我们的工程 ...
- java中io对文件操作的简单介绍
11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...
随机推荐
- [POI2007]POW-The Flood
题目描述 给定一张地势图,所有的点都被水淹没,现在有一些关键点,要求放最少的水泵使所有关键点的水都被抽干 输入输出格式 输入格式: In the first line of the standard ...
- Evensgn 的债务
问题 A: Evensgn 的债务 大致题意:a欠b5元,b欠c5元,那么最小债务总额为a欠c5元,给你关系,求最小债务总额! 不想说话...一句超级大水题,我居然没读懂!!差点想到网络流了...其实 ...
- 【USACO】奶牛抗议 树状数组+dp
题目描述 约翰家的 N 头奶牛正在排队游行抗议.一些奶牛情绪激动,约翰测算下来,排在第 i 位的奶牛 的理智度为 A i ,数字可正可负. 约翰希望奶牛在抗议时保持理性,为此,他打算将这条队伍分割成几 ...
- 【AHOI2005】病毒检测
题目描述 科学家们在Samuel星球上的探险仍在继续.非常幸运的,在Samuel星球的南极附近,探险机器人发现了一个巨大的冰湖!机器人在这个冰湖中搜集到了许多RNA片段运回了实验基地. 科学家们经过几 ...
- 用Qemu运行/调试arm linux【转】
转自:https://blog.csdn.net/absurd/article/details/78984244 用Qemu运行/调试arm linux,这事情干过好几次了,久了就忘记了,每次都要重新 ...
- 用solidity语言开发代币智能合约
智能合约开发是以太坊编程的核心之一,而代币是区块链应用的关键环节,下面我们来用solidity语言开发一个代币合约的实例,希望对大家有帮助. 以太坊的应用被称为去中心化应用(DApp),DApp的开发 ...
- spring的@Transactional(rollbackFor=Exception.class)的使用
Spring框架的事务基础架构代码将默认地只在抛出运行时和unchecked exceptions时才标识事务回滚. 也就是说,当抛出个RuntimeException 或其子类例的实例时.(Erro ...
- JVM常见问题(二)
6. GC收集器有哪些?它们的特点是? 常见的GC收集器如下图所示,连线代表可搭配使用: 1.Serial收集器(串行收集器) 用于新生代的单线程收集器,收集时需要暂停所有工作线程(Stop the ...
- 关于一些基础的Java问题的解答(一)
学习一门语言基础是非常重要的,因此本文总结了一些常见的Java基础问题的解答,希望可以帮到大家. 1. 九种基本数据类型的大小,以及他们的封装类. 9种基本数据类型 基本类型 包装类型 大小 bool ...
- Java编写高质量代码改善程序的151个建议
第一章 Java开发中通用的方法和准则 建议1:不要在常量和变量中出现易混淆的字母: (i.l.1:o.0等). 建议2:莫让常量蜕变成变量: (代码运行工程中不要改变常量值). 建议3:三元操作符 ...