2008-12-18 10 views
0

J'ai une question sur l'utilisation de KConfig. Je suis capable d'écrire et de lire les paramètres dans mon .kde4/share/config/_appname_rc fichier de configuration comme celleComment charger les paramètres par défaut avec KConfig sur kdelib?

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

Mais je ne comprends pas comment utiliser un fichier de configuration « par défaut » pour lire à la première fois Je cours mon application, ou dans le cas où les paramètres d'application doivent être réinitialisés.

Je préfère ne pas utiliser KConfig XT car mon projet est minuscule et KConfigXT avec les fichiers kcfgc * semble excessif.

Nous vous remercions à l'avance

Répondre

3

D'abord, ceci:

KConfigGroup = KConfigGroup conf (basicconf.group ("Settings"));

peut être écrit plus clairement, au moins IMHO, comme:

KConfigGroup conf (& basicconf, "Settings");

Notez également que "Général" est le nom de groupe "générique" le plus couramment utilisé. Anyways ...

Vous pouvez installer un fichier de configuration par défaut avec votre application; installer à $ PREFIX/share/config /, qui est facile à réaliser avec ceci dans votre fichier CMakeLists.txt:

INSTALL (FILES < votre fichier de configuration > DESTINATION $ {CONFIG_INSTALL_DIR})

KConfig gère toutes les la magie de fusionner à partir de là; tu n'as rien à faire. Comme KConfigXT est surchargé, il y a de nombreux avantages à l'utiliser, y compris l'automatisation de vos boîtes de dialogue de config, en veillant à ce que les limites et les valeurs légales soient appliquées, etc. Ecrire un petit fichier, une entrée dans le fichier CMakeLists.txt est généralement beaucoup moins de travail que de faire ce qu'il vous donne gratuitement à la main. Il y a un excellent tutoriel sur ce sujet.

+0

Que vous aaron seigo, et félicitations pour l'état de développement de kde4: D – Emilio

1

Utilisez KGlobal::config() pour obtenir un pointeur vers la valeur par défaut objet KConfig appartenant à votre application. Il se réfère automatiquement au fichier dans $ KDEHOME/share/config.

KConfig XT peut donner un sens parce que

  • l'API des YourSettings générés objet est spécifique à votre application; c'est un peu plus facile de comprendre la signification de YourSettings :: setFilePath (path) que conf.writeEntry ("filepath", chemin);
  • Votre application peut évoluer. il est plus facile de démarrer avec KConfig XT qu'avec rip et de le remplacer plus tard.
  • Les valeurs par défaut sont spécifiées dans le fichier XML via .kcfg plutôt que codé en dur dans quelques endroits de votre application, et vous disposez d'une méthode setDefault() pour réinitialiser toutes les valeurs.
Questions connexes