保存和恢复应用程序状态
在实际应用中,常常需要应用程序能保存程序的状态以及用户的设置,如应用程序显示的大小、位置、背景颜色或用户设置参数等信息,以便下次运行程序时,能保持上次关闭的状态。
Qt提供的QSettings类能很方便地实现保存程序设置的需求。当创始一个QSettings对象时,必须传递公司名或组织名以及应用程序名称,如下所示:
QSettingssettings("MySoft", "Star Runner");
如果在应用程序的多个地方用到QSettings,可以使用QCoreApplication::setOrganizationName()和QCoreApplication::setApplicationName()来指定组织名和应用程序名。这样,就可以使用QSettings的默认构造函数了。如下所示:
QCoreApplication::setOrganizationName("MySoft");
QCoreApplication::setOrganizationDomain("mysoft.com");
QCoreApplication::setApplicationName("StarRunner");
...
QSettingssettings;
保存一个设置方法如下:
settings.setValue("editor/wrapMargin",68);
它指定了一个设置的键(QString)和一个与之关联的数据(QVariant)。
读取一个设置的方法如下:
intmargin = settings.value("editor/wrapMargin").toInt();
上述语句将返回与键关联的数据,如果没有与该键关联的数据,则返回值为空。
intmargin = settings.value("editor/wrapMargin", 80).toInt();
上述语句提供了一个默认值,即当没有与键关联的数据时,返回默认值。
关于段和键的语法
可以构造层次化的键值,使用’/’作为分隔符,类似于Unix文件路径,如:
settings.setValue("mainwindow/size",win->size());
settings.setValue("mainwindow/fullScreen",win->isFullScreen());
settings.setValue("outputpanel/visible",panel->isVisible());
如果保存或恢复的设置的键值拥有相同的前缀,那么可以使用beginGroup()和endGroup(),代码如下所示:
settings.beginGroup("mainwindow");
settings.setValue("size",win->size());
settings.setValue("fullScreen",win->isFullScreen());
settings.endGroup();
settings.beginGroup("outputpanel");
settings.setValue("visible",panel->isVisible());
settings.endGroup();
转载于:https://my.oschina.net/fuyajun1983cn/blog/263879
保存和恢复应用程序状态相关推荐
- TensorFlow2 -官方教程 :保存和恢复模型
文章目录 准备工作:安装,导入,获取数据集,定义model 在训练期间保存模型(以 checkpoints 形式保存) Checkpoint 回调用法 checkpoint 回调选项 这些文件是什么? ...
- Tensorflow |(5)模型保存与恢复、自定义命令行参数
Tensorflow |(1)初识Tensorflow Tensorflow |(2)张量的阶和数据类型及张量操作 Tensorflow |(3)变量的的创建.初始化.保存和加载 Tensorflow ...
- 简单完整地讲解tensorflow模型的保存和恢复
http://blog.csdn.net/liangyihuai/article/details/78515913 在本教程主要讲到: 1. 什么是Tensorflow模型? 2. 如何保存Tenso ...
- Tensorflow【实战Google深度学习框架】TensorFlow模型的保存与恢复加载
我们使用TensorFlow进行模型的训练,训练好的模型需要保存,预测阶段我们需要将模型进行加载还原使用,这就涉及TensorFlow模型的保存与恢复加载. 总结一下Tensorflow常用的模型保存 ...
- Android Fragment使用(三) Activity, Fragment, WebView的状态保存和恢复
Android中的状态保存和恢复 Android中的状态保存和恢复, 包括Activity和Fragment以及其中View的状态处理. Activity的状态除了其中的View和Fragment的状 ...
- 任务切换的基础:模拟任务切换时寄存器的保存与恢复
文章目录 1 任务切换的基础:模拟任务切换时寄存器的保存与恢复 1 任务切换的基础:模拟任务切换时寄存器的保存与恢复 需求说明:使用PendSVC触发异常,在异常处理函数中,保存R4-R11寄存器到缓 ...
- 深度学习小技巧(二):如何保存和恢复scikit-learn训练的模型
深度学习小技巧(一):如何保存和恢复TensorFlow训练的模型 在许多情况下,在使用scikit学习库的同时,你需要将预测模型保存到文件中,然后在使用它们的时候还原它们,以便重复使用以前的工作.比 ...
- [architecture]-ARMV7架构下SecureMonitor双系统切换时保存和恢复哪些寄存
★★★ 个人博客导读首页-点击此处 ★★★ . 文章目录 1.armv7的通用寄存器简介 2.寄存器的保存和恢复 3.参考代码: 1.armv7的通用寄存器简介 ARMV7处理器有40个32位寄存器, ...
- [architecture]-ARMV7架构下Linux Kernel的Userspace进程切换时保存和恢复哪些寄存器
★★★ 个人博客导读首页-点击此处 ★★★ . 文章目录 1.armv7的通用寄存器简介 2.寄存器的保存和恢复 3.Linux Kernel参考代码 1.armv7的通用寄存器简介 ARMV7处理器 ...
最新文章
- HTML(六)——表单验证、正则表达式、事件
- free malloc
- C++相关:部分标准库特殊设施
- VS2005 there is no source code available for the current location 解决方案
- 微信获取位置 转化为 高德地图 位置 地址
- 一只猫引发的互联网争论
- 【今日CV 视觉论文速览】16 Nov 2018
- 任意线段集生成多边形_self-attention缺失文本生成||Text Infilling
- python类:class创建、数据方法属性及访问控制(下划线)
- linux 内核移植(七)――rest_init函数分析
- 小程序普通二维码配置
- 标志设计|标识设计|商标设计|logo设计|的起源
- GRPC Connection Backoff Protocol
- 今日网易邮箱126无法访问
- 网易云音乐实时计算平台设计及实践
- GameofMir引擎架设传奇服务器【2:登录器配置】
- xAd:南京大学大二学生开发的视频内广告动态植入技术
- 在ROS Kinetic和Gazebo 8中使用智能汽车仿真演示
- 以太坊合并 你需要熟悉的两个PoS概念
- it创客_创客是新的工业革命