日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射(

發布時間:2024/9/27 c/c++ 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射( 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • 新建項目13IO

  • 13IO.pro

    HEADERS += \

    ??? MyWidget.h

    ?

    SOURCES += \

    ??? MyWidget.cpp

    ?

    QT += gui widgets network

    CONFIG += C++11

    MyWidget.h

    #ifndef MYWIDGET_H #define MYWIDGET_H ? #include <QWidget> ? class MyWidget : public QWidget { ??? Q_OBJECT public: ??? explicit MyWidget(QWidget *parent = 0); ? 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 關于QBuffer

    #include "MyWidget.h"

    #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)

    {

    ??? QBuffer buffer;

    ??? buffer.open(QIODevice::ReadWrite);

    ?

    ??? buffer.write("abc");

    ??? buffer.write("aabbcc");

    ?

    ??? buffer.close();

    ?

    ??? //可以知道buffer中存儲的是緩沖區,通過下面的方式看看buffer中的內容是什么

    ??? qDebug() << buffer.buffer();

    }

    ?

    int main(int argc,char** argv)

    {

    ??? QApplication app(argc,argv);

    ?

    ??? MyWidget w;

    ??? w.show();

    ?

    ??? return app.exec();

    }

    運行結果:

    ?

    3 QBuffer QPixmap實現在Label上添加圖片,下面是內存文件的應用

    #include "MyWidget.h"

    #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)

    {

    ??? // send side

    QBuffer buffer;

    //不要路徑,因為它的內容是寫在內存里面的。

    ??? buffer.open(QIODevice::ReadWrite);

    QPixmap pixmap("../aaa.png");

    //pixmapsave實際上有兩個參數,保存成相應的文件的時候要指定相應的格式,PNG是不是真,JPG是失真的。JPG是有損壓縮,PNG是無損壓縮。

    ??? pixmap.save(&buffer, "PNG");

    ??? buffer.close();

    ?

    ??? qDebug() << buffer.buffer().size();

    ?

    ??? // recv side

    QPixmap pixmap2;

    //通過loadFromData把它收起來。

    ??? pixmap2.loadFromData(buffer.buffer(), "PNG");

    ?

    ??? QLabel* label = new QLabel(this);

    ??? label->setPixmap(pixmap2);

    }

    ?

    int main(int argc,char** argv)

    {

    ??? QApplication app(argc,argv);

    ?

    ??? MyWidget w;

    ??? w.show();

    ?

    ??? return app.exec();

    }

    運行結果:

    ?

    4 QByteArrayQString之間的區別

    #include "MyWidget.h"

    #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)

    {

    ??? //關于QByteArrayQString

    ??? //QByteArray編碼的時候將一個漢字編碼成3個字節

    ??? QByteArray ba("涂作權");

    ??? //QSting中有自己字符,它的大小就是幾個字符

    ??? QString str("涂作權");

    ??? qDebug() << ba.size() << str.size();

    }

    ?

    int main(int argc,char** argv)

    {

    ??? QApplication app(argc,argv);

    ?

    ??? MyWidget w;

    ??? w.show();

    ?

    ??? return app.exec();

    }

    ?

    5 QTextStreamQDataStream的區別

    #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 file("../teststream.txt");

    ??? //QTextStream需要一個QIODevice來構造它

    ??? file.open(QIODevice::ReadWrite);

    ?

    ??? QTextStream textStream(&file);

    ?

    ??? //通過下面的方式可以寫文件,并且文件內容中是正常的

    ??? textStream << 1 << "abc" << 1.2 << QString("abc");

    ?

    file.close();

    //運行之后,在項目所在目錄下發現多了teststream.txt文件,文件內容如下:

    #if 0

    ??? //如果想寫進去很方便讀出來的話使用DataStream

    ??? QFile file("../teststream.txt");

    ??? file.open(QIODevice::ReadWrite);

    ?

    ??? QDataStream dataStream(&file);

    ??? dataStream << 1 << "abc" << 1.2 << QString("abc") << QPoint(1,1);

    file.close();

    //上面的運行結果如下:

    #endif

    }

    ?

    int main(int argc,char** argv)

    {

    ??? QApplication app(argc,argv);

    ?

    ??? MyWidget w;

    ??? w.show();

    ?

    ??? return app.exec();

    }

    ?

    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); ??? //向文件中寫入1 ??? 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内存映射(的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 桃色一区二区三区 | 日韩av一二区 | 91爱啪| 性渴老太作爱 | 欧美经典一区二区 | 小蝌蚪av | 涩涩网站在线观看 | 中文字幕精品亚洲 | 亚洲精品一区三区三区在线观看 | a级黄色片免费看 | 在线观看三级网站 | 一级片国产| 精品人妻中文无码av在线 | 国产又色又爽又高潮免费 | 国产精品国产三级国产专区51 | 国产古装艳史毛片hd | 久久噜噜色综合一区二区 | 国产成人精品久久二区二区 | 18成人免费观看视频 | 吻胸摸激情床激烈视频大胸 | 少妇人妻无码专区视频 | 精品国产乱码久久久久久浪潮 | 91超碰在线免费观看 | 粉嫩av懂色av蜜臀av分享 | 91精品久久久久久久久中文字幕 | 91美女福利视频 | 精品福利视频一区二区 | 裸体毛片 | 亚洲免费成人网 | 韩国三级做爰高潮 | 国产乱子伦精品无码码专区 | 久久久久亚洲av无码麻豆 | www.日韩一区 | 性欧美在线视频观看 | 成年人在线观看网站 | 乱短篇艳辣500篇h文最新章节 | 亚洲国产精品久久久久爰色欲 | 日本一区欧美 | 啪啪网站大全 | 天天骑夜夜操 | 国产夫妻在线观看 | 色一区二区三区四区 | 亚洲成人av一区二区 | 免费观看国产精品视频 | 新呦u视频一区二区 | 精品久久一区二区 | 91看片视频 | 杂技xxx裸体xxxx欧美 | 国产人伦精品一区二区三区 | 亚洲黄色一级大片 | 一级免费观看视频 | 久久久激情视频 | 秋霞亚洲 | 蜜桃视频久久一区免费观看入口 | 性色网站 | 色盈盈影院 | 蜜臀视频在线观看 | 91麻豆精品国产91久久久更新时间 | 丁香六月欧美 | 爱情岛论坛亚洲线路一 | 日本福利一区二区三区 | 欧美激情一区二区三区 | 久久偷看各类女兵18女厕嘘嘘 | 黄色a级片视频 | 日本十大三级艳星 | 国产免费观看一区 | 久久综合伊人77777蜜臀 | 国产不卡在线观看视频 | 成人激情综合网 | 午夜视频在线观看国产 | 欧美中文一区 | 国产精品成人久久 | 日韩成人福利视频 | 高潮疯狂过瘾粗话对白 | 国产成人av在线播放 | 99只有精品| 中文有码在线 | 国产色区 | 性欧美久久 | 国产成人综合久久 | 一级大黄色片 | 欧美成人一二三 | 在线观看日韩中文字幕 | 精品国产AV色欲天媒传媒 | 青草综合 | 性av网 | 国产一区二区视频在线免费观看 | 免费成年人视频在线观看 | 色视频在线观看免费 | 亚洲性图一区二区 | 成年人看的网站 | 黄页网站免费在线观看 | 天美麻花果冻视频大全英文版 | 亚洲免费视频播放 | 无遮挡毛片 | 日本五十肥熟交尾 | 奇米影视第四色首页 | 三级黄色视屏 | 久久精品久久99 |