2008-12-18 40 views
0

我对KConfig的使用有疑问。我能写,在我.kde4 /股的阅读设置这样的如何在kdelib上使用KConfig加载默认设置?

KConfig basicconf; 
KConfigGroup conf = KConfigGroup(basicconf.group("Settings")); 
conf.writeEntry("filepath",QString("/path/")); 
basicconf.sync(); 

/配置/ _appname_rc配置文件,但我不知道如何使用“默认”的配置文件,在第一次阅读我运行我的应用程序,或者如果应用程序设置需要重置。

我更喜欢不使用KConfig XT,因为我的项目很小,KConfigXT与kcfgc *文件似乎过多。

预先感谢您

回答

3

首先,该:

KConfigGroup CONF = KConfigGroup(basicconf.group( “设置”));

可以更清楚地写入,至少IMHO,如:

KConfigGroup CONF(& basicconf, “设置”);

另请注意,“常规”是最常用的“通用”组名称。无论如何...

您可以在您的应用程序中安装默认配置文件;它安装到$ PREFIX /共享/配置/,这是在你的CMakeLists.txt文件,这一点很容易实现:

安装(FILES <您的配置文件> DESTINATION $ {} CONFIG_INSTALL_DIR)

的Kconfig处理所有从那里融合的魔力;你不必做一件事。

对于KConfigXT过度使用,使用它有很多好处,包括自动配置对话框,确保边界和合法值被强制执行等。编写一个小文件,在CMakeLists.txt文件中弹出一个条目通常是比自己手动免费提供的工作少得多。这里有一个很棒的教程on TechBase

+0

比你aaron seigo,并祝贺kde4发展状态:D – Emilio 2008-12-18 16:55:49

1

使用KGlobal::config()获取一个指针由您的应用程序拥有默认的Kconfig对象。它自动引用$ KDEHOME/share/config中的文件。

KConfig XT是有意义的,因为

  • 产生的YourSettings的API对象是特定于应用程序;理解YourSettings :: setFilePath(path)的意思比conf.writeEntry(“filepath”,path)更容易理解;
  • 您的应用可能会增长;从KConfig XT开始比使用rip更容易,稍后将其替换。
  • 默认值是通过.kcfg XML指定的,而不是在您的应用程序的几个位置进行硬编码,并且您有一个setDefault()方法来重置所有值。
相关问题