870920 Menu

ApplicationProperties详解 2-1

ApplicationProperties

读写各类设置是程序中最重要的核心功能之一,比如:将程序的各项设置、状态、最近使用过的文档等信息保存到程序属性文件中,下次启动,自动读取这些信息,恢复先前保存的各项设置与程序状态。ApplicationProperties和PropertiesFile这两个类专司此职。

Windows 7操作系统下,该类所自动生成的程序属性文件为:
C:Users用户名AppDataRoaming程序描述程序描述.扩展名
ApplicationProperties是PropertiesFile类的封装,其内部可保存两个不同的PropertiesFile对象,一个是特定用户的设置,存储在用户目录下,另一个所有用户的公共设置,存储在“所有用户”目录下。该类主要用于创建和获取程序的PropertiesFile,并可保存或关闭之。

通常,在程序主体类的初始化函数中创建ApplicationProperties对象,而后调用setStorageParameters()给出该对象所必须的参数信息。该类的对象第一次调用getUserSettings()时,自动创建并返回用户目录下的程序属性文件。同理,第一次调用getCommonSettings(),则自动创建并加载公共目录下的程序属性文件。如果已经创建了属性文件,则直接返回之。返回值为PropertiesFile类的指针,利用该对象读取、添加和修改数据。修改或添加数据后,调用saveIfNeeded()保存之。ApplicationProperties和PropertiesFile这两个类均有saveIfNeeded()函数,功能一致。

要顺利实现程序中各类设置的读写,还需深入了解另一个类,即PropertiesFile的父类PropertySet属性集合类。程序内部读取、修改、添加、移除数据时,主要依靠PropertySet的成员函数。这三个类的UML类图及核心函数如上图所示。

基本流程:
1、声明全局对象。在程序主体类(JUCEApplication的子类)cpp文件的开头处(#include头文件包含语句之后):

2、创建对象。主程序类的initialise()函数中实例化程序属性对象,创建属性文件:

3、关闭销毁。程序主体类的shutdown ()函数中关闭属性文件,销毁程序属性对象:

4、读写数据。可在自定义类的构造函数中读取有关信息,析构函数中保存有关信息(或者在有关成员函数中保存和读取信息,读取时,务必要使用getUserSettings()函数来确保第一次调用时创建并返回PropertiesFile对象)。默认所保存的文件为XML格式(可利用PropertiesFile::Options对象设置所存储的格式:二进制、压缩的二进制、XML),每个节点均为“键值对(属性名称,属性值)”集合。

设置数据调用setValue()函数,该函数为PropertiesFile类的父类PropertySet类的成员函数,需要两个参数,1参为属性名称(String),2参为属性值(var)。读取数据的函数为getValue(),只需一个参数:属性名称,自动返回对应的属性值。