QSettings类详解
来源:互联网 发布:php md5加密后的长度 编辑:程序博客网 时间:2024/04/29 14:32
Qt4.0中又增加了一个非常有用的类QSettings,这个类是Qt4提供的一个读取配置文件的类,在Windows平台上,它提供了ini文件的读写,以及注册表的读写功能。我们都知道,用户对于应用程序经常有某种需要,比如说:窗体的大小,出现的位置,以及最近打开的文件等等,而这些需求均可由QSettings类实现。
一般来说settings都存放在系统之中,在windows操作系统下一般都是ini加密文件中或者是系统的注册表中,而对于mac系统来说,一般存放在XML文件中,下面我们就来看看它的具体用法。
读过《C++ GUI Programming with Qt 4, Second Edition》这本书的人应该都遇到过这个疑问,我们先来看看它的构造函数吧:
- QSettings ( const QString & organization, const QString & application = QString(), QObject * parent = 0 )
- QSettings ( Scope scope, const QString & organization, const QString & application = QString(), QObject * parent = 0 )
- QSettings ( Format format, Scope scope, const QString & organization, const QString & application = QString(), QObject * parent = 0 )
- QSettings ( const QString & fileName, Format format, QObject * parent = 0 )
- QSettings ( QObject * parent = 0)
当我们创建一个QSettings的对象时,一般需要传递两个参数,第一个是公司或者组织的名称,第二个是应用程序的名称,我们以例子来说明问题:
- QSettings settings("Yzs_think", "Application");
公司或组织名称:Yzs_think, 程序名称:Application
下面就要对其值进行设置(一般用法):
1、写入数据:
- QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
- QSize size = settings.value("size", QSize(400, 400)).toSize();
- resize(size);
- move(pos);
第一句是设置窗口出现的位置坐标,第二句实现了对窗口大小的设置,第三局和第四句如果 settings 里有以前存下的 ( 用 setValue 设置的 )pos 和 size 的值,则读取,如果没有,不会返回 null ,而会使用我们给它的起始值—— default value ——即应用程序第一次运行时的情况。
2、读出信息数据
- QSettings settings("Yzs_think", "Application");
- settings.setValue("pos", pos());
- settings.setValue("size", size());
这里值得注意的是写数据和读数据的时候的公司名称与应用程序名称必须一样,否则无法正常读取。
下面我们以一段具体的程序来说明问题:
- void MainWindow::readSettings()
- {
- QSettings settings("Yzs_think", "Application");
- QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
- QSize size = settings.value("size", QSize(400, 400)).toSize();
- resize(size);
- move(pos);
- }
- void MainWindow::writeSettings()
- {
- QSettings settings("Yzs_think", "Application");
- settings.setValue("pos", pos());
- settings.setValue("size", size());
- }
而后在我们的程序中,每次重新打开应用程序时,其窗口大小和位置都是上一次关闭之前的位置。
本文出自 “驿落黄昏” 博客,请务必保留此出处http://yiluohuanghun.blog.51cto.com/3407300/952807
0 0
- QSettings类详解
- Qt之QSettings类详解
- QSettings用法详解
- 类QSettings使用参考
- 类QSettings使用
- QSettings
- qsettings
- QSettings
- QSettings
- QSettings
- QSettings
- QSettings
- QSettings的基本使用详解(一)
- Qt 类QSettings,读取ini与注册表
- qt 用QSettings类读写配置文件
- QSettings类管理注册表或配置文件
- Qt 类中 用QSettings类读配置文件
- QT4中QSettings类支持中文的解决方法
- 【android NDK及JNI】ubuntu12.10 64位 + android-ndk-r9 编译ffmpeg遇到的问题 .
- wordpress插件
- Vmware克隆Centos 不能上网的解决方案
- [leetcode] Reverse Nodes in k-Group
- 扩展赋值运算符
- QSettings类详解
- 网站漏洞整理
- 数制之间的转换
- ifconfig command not found on CentOS 7
- 素数
- fatal error C1010: unexpected end of file while looking for precompiled header directive
- Codeforces 282E. Sausage Maximization【trie树(非指针版)】
- jedis使用实例
- 一种批量读取文件的方法——SHBrowseForFolder