我正在使用 KDE 编写一个开源应用程序,在软件中心销售。根据将应用程序上传到软件中心的要求,
将所有配置设置写入 ~/.config/ (这可以是一个文件或包含多个配置文件的目录)
默认情况下,KDE 应用程序似乎将配置文件存储在 中~/.kde/share/config/<name>rc
。这不允许吗?如果是这样,我该如何更改文件的存储位置?我正在使用 KConfig XT。教程说
通过打开控制数据存储在哪个 KConfig 文件中的标签来启动该文件。有三种可能性:
- 如果
<kcfgfile>
标签没有属性,生成的代码将使用应用程序的默认 KConfig 文件(通常$HOME/.kde/config/<appname>rc
)。- “name”属性用于手动指定文件名。如果分配给“name”的值不是绝对文件路径,则将在默认的 KDE 配置目录中创建该文件(通常
$HOME/.kde/config
)。- 如果您希望能够在构造时指定配置文件,请使用
<kcfgfile arg="true">
。这会导致生成的类的构造函数将作为KSharedConfig::Ptr
参数,从而允许您构造指向不同文件的多个实例。
我尝试将name
属性设置为~/.config/<appname>
,但该位置没有文件,尽管设置仍在保存。此外,当我设置 name 属性时,其他设置仍保存为~/.kde/share/config/<appname>rc
,例如窗口大小。
如何更改 KDE 应用程序的配置数据存储位置,以使其满足软件中心的上传要求?
答案1
如果您使用KConfig
API,您的应用程序可以上传到 MyApps 并包含在商店中。
您也可以使用 dconf 的 Qt 绑定,dconf-qt
它允许您将设置存储在~/.config/
目录下的 dconf 中。
还要注意,~/.config/
这些要求中可能没有很好地指定要求,而应该这样指定$XDG_CONFIG_HOME
,这~/.config/
只是默认设置,用户可能决定更改为其他位置,以便他们更容易访问其下面的文件。