首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Qt -在(from)文件中保存(或加载) qt变量的最简单和最快的方法

Qt -在(from)文件中保存(或加载) qt变量的最简单和最快的方法
EN

Stack Overflow用户
提问于 2017-04-03 09:58:20
回答 2查看 1.8K关注 0票数 0

我的应用程序中有大量的qt变量(QString、QMap、QList等),我正在寻找最快和最简单的方法来保存和加载文件中的数据。

有人能帮我怎么做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-04 02:14:38

可以使用QDataStream http://doc.qt.io/qt-5/qdatastream.html#details序列化二进制数据,以便从QIODevice (例如QFile )中保存/加载数据。所有支持的格式见http://doc.qt.io/qt-5/datastreamformat.html,包括QString、QMap .

票数 0
EN

Stack Overflow用户

发布于 2017-04-03 10:37:44

如果要从本地文件中实际保存,则应使用QSettings

您可以轻松地保存这样的数据:

代码语言:javascript
运行
AI代码解释
复制
QList<QString> list = {"toto", "is it really working ?", "seems nice :)"};
QList<int> listInt = {3, 5, 8};

QList<QString> list2;
qRegisterMetaTypeStreamOperators<QList<QString> >("QList<QString>");
qRegisterMetaTypeStreamOperators<QList<int> >("QList<int>");

QSettings settings("Moose Soft", "Facturo-Pro", this);
settings.setValue("listData", QVariant::fromValue(list));
settings.setValue("listInt", QVariant::fromValue(listInt));
settings.setValue("test", 5);

list2 = settings.value("listData").value<QList<QString>>();

qDebug() << list;
qDebug() << list2;
qDebug() << settings.value("listInt").value<QList<int>>();
qDebug() << settings.value("test").value<int>();

在这里,我创建了一个Stringint列表,因为它是特殊类型,我们需要使用qRegisterMetaTypeStreamOperators来指示类型。

然后只创建QSettings写/读取值。请注意,一旦您这样做了一次,就会创建一个文件给您不再需要setValue

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43191314

复制
相关文章
Qt中中文处理的简单方法
    QT是一套很不错的界面开发库,而且考虑到了跨平台的要求,使用也相对比较容易上手。我也刚刚才学习用QT开发,发现它对中文的处理做的不是很好,或者更贴切的是做的不够智能吧,如果在字符串中输入中文,显示的就会是乱码。     下面就介绍一个简单的方法,让我们的中文正确显示出来,先看一段程序,该程序主要功能就是显示一个窗口,窗口上面的按钮显示中文。
阳光岛主
2019/02/19
1.3K0
QT新建文件、打开文件、保存文件
一、首页布局界面,如图所示的界面及对象名称: 二、在头部文件中添加槽:     private slots:     void calcSlot();     //新建文件     void createNewFile();     //打开文件     void openFileSlot();     //保存文件 三、实现槽函数: //新建文件 void MainWindow::createNewFile(){     //如果当前文档的内容已经改变了     if(ui->textAreaInput
Sindsun
2018/07/06
4.9K0
启用已废弃或过时的Qt方法
  我们在使用新版的QtCreator自动生成pro文件中,有这么一段代码。实际上也没有开启。意思是「禁用所有Qt 6.0.0之前的API」。
Qt君
2023/03/17
7590
启用已废弃或过时的Qt方法
Qt中基本的绘图方法
Qt中实现绘图功能和其他的库差不多,主要靠Painter,Pen,Brush之类的东西进行描绘。这里主要牵涉到QPainter,QPen,QBrush三个类,用法也很简单。下面主要是实现一个全面显示各种图形的程序,定义了两个类,一个负责绘图区,一个负责用户交互,这里先介绍绘图区的类。
mythsman
2022/11/14
7220
【QT】QT文件处理
QFile类用于文件操作,它提供了读写文件的接口,可以读写文件、二进制文件和Qt资源文件。
半生瓜的blog
2023/05/13
1.6K0
【QT】QT文件处理
Qt加载字体
本文介绍怎么设置系统内置字体和从外部加载字体。 查询系统支持的字体 QFontDatabase database; foreach (const QString &family, database.families()) { qDebug()<<family; } 设置全局字体 font内容为family查询到的字体名称 QFont font("family"); QApplication::setFont(font); 外部加载字体 字体支持ttc或ttf格式加载; 使用 addApplicati
Qt君
2019/07/15
2.2K0
QT读写.INI文件的实现方法
.ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。但在某些情况,还是要直接编辑ini才方便,一般只有很熟悉windows才能去直接编辑。
杨源鑫
2019/07/04
6.3K1
QT读写.INI文件的实现方法
Qt加载库
Qt项目加载库文件,一般时在pro后缀的项目文件上添加。 方法1(常规情况) 在unix系统上 -L是连接库目录,而 -l则为加载库的名字; 在windows系统下则可以直接添加库; unix系统测试库为: /usr/local/lib/libtest.so; windows系统测试库为: C:/mylibs/test.lib。 unix:LIBS += -L/usr/local/lib -ltestwin32:LIBS += C:/mylibs/test.lib 方法2(特殊情况) 库路径存在空格的情况下
Qt君
2019/07/15
8660
Qt中的QFile读写文件操作
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130796.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/01
1.2K0
Qt中的QFile读写文件操作
Qt简单的音频采集
❝实现采集录音设备的音频数据到文件中。❞ 项目文件添加 QT += multimedia 头文件 #include <QFile> #include <QAudioInput> #include <QAudioDeviceInfo> 代码 /* 设置音频参数 */ QAudioFormat format; /* 设置采样率 */ format.setSampleRate(8000); /* 设置声道数 */ format.setChannelCount(1); /* 设置每次采样字节的大小 */ for
Qt君
2023/03/17
1.3K0
Qt简单的音频采集
Qt加载XPM图像
❝XPM是一种基于ASCII编码的图像格式,一般用于创建图标。由于它是ASCII编码,很方便地在代码中使用。 ❞   Qt的QPixmap类支持XPM格式,原型如下: QPixmap::QPixmap(const char *const [] xpm)   摘取Qt源码中的"严重警告"XPM图标: static const char* const critical_xpm[]={ "32 32 4 1", ". c None", "a c #999999", "* c #ff0000", "b c #ff
Qt君
2020/05/08
1.4K0
Qt加载XPM图像
QT应用编程: 保存指定控件的数据到剪切板和本地文件
一、环境介绍 操作系统介绍:win10 64位 QT版本: 5.12.6 二、保存指定控件的数据到剪切板和本地文件 #include <QMenu> #include <QApplication> #include <QClipboard> Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ..................................... //添加菜单
DS小龙哥
2022/01/07
1K0
最快最简单的排序---桶排序
是不是很好理解,就是开一个比最大数据大或者等于的一个数组,然后相应的桶遇到数就++,最后输出就行了。
杨鹏伟
2020/09/10
7690
Qt简单屏幕截图(兼容Qt4/5)
Qt4使用 QPixmap::grabWindow接口获取指定屏幕; Qt5使用QScreen 的grabWindow接口获取指定屏幕; QApplication::desktop()获取根窗口; QUuid::createUuid()产生唯一ID; pixmap.save(name)保存截图到本地. main.cpp #include <QApplication> #include <QDesktopWidget> #include <QScreen> #include <QPixmap> #includ
Qt君
2019/07/15
2.5K0
【Qt源码笔记】浅谈 Qt 中的控件绘制
在工作中经常要根据 UI 提供的稿子做自绘控件,而且在新项目中,我自己基于 Qt 做了一套项目自用控件库,还会涉及到换肤,所以对 Qt 的控件绘制,着重的研究了一下。看过代码之后,觉得 Qt 项目本身,确实是做 UI 发家,绘制流程清晰,可以说是做界面的范本了。将流程梳理记录一下。
Harper
2021/07/27
2.3K1
在QT中处理windows消息
http://blog.csdn.net/sryan/article/details/6744070
bear_fish
2018/09/20
2.7K0
在QT中处理windows消息
Qt 中 QString 和 QByteArray
QString 是 Qt 内部的一种字符串数据类型,QString 支持多字节编码(unicode)的一个字符串类。在程序和网络之间传输数据时,其他的程序和网络另一端的程序是不能识别他这种数据类型的。所以要想将 QString 类型的数据保存到文件或发送到网络,需要转换成 QByteArray 类型才可以。
我与梦想有个约会
2023/10/20
5310
「  最简单的typecho加载提速方法-开启gzip  」
Typecho开启Gzip压缩加速网站 开启Typecho的gzip功能很简单,是和wordpress一样的,只要在根目录下的 index.php 文件里面加上下面这一句就可以了:
青益
2023/01/04
7800
「  最简单的typecho加载提速方法-开启gzip  」
Qt环境变量接口
使用Qt的 qputenv与 qgetenv接口操作程序环境变量。 获取环境变量接口 QByteArray qgetenv(const char *varName)QString qEnvironmentVariable(const char *varName, const QString &defaultValue)QString qEnvironmentVariable(const char *varName) 设置环境变量接口 varName环境变量名字。 value环境变量的值。 bool qput
Qt君
2019/07/15
2K0
qt中qmake的详解
1.首先,感性的认识是,qmake可以利用源文件(包括头文件h,实现文件cpp,qt的ui文件等等)生成各种不同类型的工程,工程需要的Makefile文件,可执行的与不可执行的,这取决于所用的模板(包括app、lib、subdirs、vcapp、vclib)。
全栈程序员站长
2022/07/21
2.7K0
qt中qmake的详解

相似问题

在Qt4.7中解析JSON的最简单方法

62

使用Felgo Qt Creator生成android APK的最简单/最快速的方法是什么?

25

在Qt中制作大量对象动画的最简单方法

11

在ubuntu上安装最新QT的最简单方法

19

Qt -写速度-用Qt写文件最快的方法是什么?

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文