QSettings类详解

Qt4.0中又增加了一个非常有用的类QSettings,这个类是Qt4提供的一个读取配置文件的类,在Windows平台上,它提供了ini文件的读写,以及注册表的读写功能。我们都知道,用户对于应用程序经常有某种需要,比如说:窗体的大小,出现的位置,以及最近打开的文件等等,而这些需求均可由QSettings类实现。

一般来说settings都存放在系统之中,在windows操作系统下一般都是ini加密文件中或者是系统的注册表中,而对于mac系统来说,一般存放在XML文件中,下面我们就来看看它的具体用法。
读过《C++ GUI Programming with Qt 4, Second Edition》这本书的人应该都遇到过这个疑问,我们先来看看它的构造函数吧:
 
 
  1. QSettings ( const QString & organization, const QString & application = QString(), QObject * parent = 0 )
  2. QSettings ( Scope scope, const QString & organization, const QString & application = QString(), QObject * parent = 0 )
  3. QSettings ( Format format, Scope scope, const QString & organization, const QString & application = QString(), QObject * parent = 0 )
  4. QSettings ( const QString & fileName, Format format, QObject * parent = 0 )
  5. QSettings ( QObject * parent = 0)
当我们创建一个QSettings的对象时,一般需要传递两个参数,第一个是公司或者组织的名称,第二个是应用程序的名称,我们以例子来说明问题:
 
 
  1. QSettings settings("Yzs_think", "Application");
公司或组织名称:Yzs_think, 程序名称:Application
下面就要对其值进行设置(一般用法):
1、写入数据:
 
 
  1. QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
  2. QSize size = settings.value("size", QSize(400, 400)).toSize();
  3. resize(size);
  4. move(pos);
第一句是设置窗口出现的位置坐标,第二句实现了对窗口大小的设置,第三局和第四句如果 settings 里有以前存下的 ( 用 setValue 设置的 )pos 和 size 的值,则读取,如果没有,不会返回 null ,而会使用我们给它的起始值—— default value ——即应用程序第一次运行时的情况。
2、读出信息数据
 
 
  1. QSettings settings("Yzs_think", "Application");
  2. settings.setValue("pos", pos());
  3. settings.setValue("size", size());
这里值得注意的是写数据和读数据的时候的公司名称与应用程序名称必须一样,否则无法正常读取。
下面我们以一段具体的程序来说明问题:
 
 
  1. void MainWindow::readSettings()
  2. {
  3. QSettings settings("Yzs_think", "Application");
  4. QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
  5. QSize size = settings.value("size", QSize(400, 400)).toSize();
  6. resize(size);
  7. move(pos);
  8. }
  9. void MainWindow::writeSettings()
  10. {
  11. QSettings settings("Yzs_think", "Application");
  12. settings.setValue("pos", pos());
  13. settings.setValue("size", size());
  14. }
而后在我们的程序中,每次重新打开应用程序时,其窗口大小和位置都是上一次关闭之前的位置。

本文出自 “驿落黄昏” 博客,请务必保留此出处http://yiluohuanghun.blog.51cto.com/3407300/952807

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值