在 qt linux 中保存配置

2024-03-11

我为Linux编写了一个qt应用程序。该应用程序应该在启动时运行 - 我 用桌面条目做的。

但我需要它更复杂: 用户应该检查一个复选框,以便选择应用程序是否在启动时运行。

我该如何保存他的偏好?

该应用程序之前是为 Windows 编写的,并且保存在注册表中。 我通过谷歌搜索得知我应该将其保存在 /etc 中。

它应该是什么文件?我如何在我的代码中编写它? 我可以在桌面条目中添加一个条件,还是应该运行一些脚本?

我对这一切都很陌生,所以我将不胜感激详细的答案。

thank u.


对于这种特殊情况,保存控制应用程序是否应在启动时运行的首选项设置是完全没有意义的。自动运行条目桌面文件的存在本身就反映了该首选项的状态。如果该文件存在,请选中该复选框。如果用户取消选中该复选框,您将删除该文件。如果用户选中该复选框,您将创建该文件。就是这样。在首选项存储中复制设置只会导致错误,因为现在您必须保持设置和文件系统中文件的存在同步,并且必须处理各种极端情况。

此外,请记住/etc/xdg/autostart用于系统范围的自动运行条目。如果它应该是每个用户的设置,您应该在用户的自动启动目录中创建 .desktop 文件。要确定其位置,请按照桌面应用程序自动启动规范 http://standards.freedesktop.org/autostart-spec/autostart-spec-latest.html,这要求该位置是$XDG_CONFIG_DIRS/autostart,这通常解析为.config/autostart用户主目录中的目录(但是,如果XDG_CONFIG_DIRS环境变量存在,您应该通过先读取该值然后附加来解决它/autostart to it.)

这是一个示例程序,它将打印出您想要的内容:

#include <cstdlib>
#include <iostream>
#include <QtCore/QString>
#include <QtCore/QDir>

#ifndef Q_OS_UNIX
#error This method only makes sense on Unix, use OS-specific handling for other OSes.
#endif

QString getUserXdgConfigDir()
{
  QString result(std::getenv("XDG_CONFIG_DIRS"));
  if (result.isEmpty()) {
    // XDG_CONFIG_DIRS is not defined, we'll use the default value
    // as mandated by http://standards.freedesktop.org/autostart-spec/autostart-spec-latest.html
    result = QDir::homePath() + QDir::separator() + ".config";
  }
  return result;
}

QString getUserAutostartDir()
{
  return getUserXdgConfigDir() + QDir::separator() + "autostart";
}

int main(int argc, char *argv[])
{
  std::cout << "User config dir is " << getUserXdgConfigDir().toStdString() << std::endl;
  std::cout << "User autostart dir is " << getUserAutostartDir().toStdString() << std::endl;
  return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 qt linux 中保存配置 的相关文章

  • PHP_CodeSniffer - 显示失败的嗅探

    PHP CodeSniffer 中是否有设置来显示失败的嗅探 我将输出与我们的编码标准进行比较 并且一一使用很难破译哪个测试失败 看看我们可能想忽略哪个 如果有一种简单的方法来显示故障嗅探 那么我可以更轻松 更快地完成配置 您可以使用 s
  • 使用 C++ 输出字符串覆盖 Linux 终端上的最后一个字符串

    假设我有一个命令行程序 有没有办法让我说的时候 std cout lt lt stuff 如果我不做std cout lt lt n 在另一个之间std cout lt lt stuff 东西的另一个输出将覆盖同一行上的最后一个东西 清理行
  • 如何使用libaudit?

    我试图了解如何使用 libaudit 我想接收有关使用 C C 的用户操作的事件 我不明白如何设置规则 以及如何获取有关用户操作的信息 例如 我想获取用户创建目录时的信息 int audit fd audit open struct aud
  • 测试linux下磁盘空间不足

    我有一个程序 当写入某个文件的磁盘空间不足时 该程序可能会死掉 我不确定是否是这种情况 我想运行它并查看 但我的测试服务器不会很快耗尽空间 有什么办法可以嘲笑这种行为吗 看起来没有任何方法可以在 Ubuntu 中设置文件夹 文件大小限制 并
  • ARM 系统调用的接口是什么?它在 Linux 内核中的何处定义?

    我读过有关 Linux 中的系统调用的内容 并且到处都给出了有关 x86 架构的描述 0x80中断和SYSENTER 但我无法追踪 ARM 架构中系统调用的文件和进程 任何人都可以帮忙吗 我知道的几个相关文件是 arch arm kerne
  • Docker DNS 设置

    我尝试使用自定义网络和 dos 设置创建 docker 容器 docker网络创建 driver bridge opt com docker network bridge enable ip masquerade true opt com
  • 在 Ubuntu 上纯粹通过 bash 脚本安装 mysql 5.7

    我想要一个无需任何手动输入即可安装 MySQL 5 7 实例的 bash 脚本 我正在关注数字海洋教程 https www digitalocean com community tutorials how to install mysql
  • gnome-terminal 新选项卡,使用别名作为要执行的命令

    我已经创建了一个别名 bashrc文件如下 alias myproject cd Desktop myproject 当我重新启动终端时保存文件后 输入myproject带我到项目目录 但是当我尝试使用别名作为新的命令参数时gnome te
  • 在中断时获取 current->pid

    我正在Linux调度程序上写一些东西 我需要知道在我的中断到来之前哪个进程正在运行 当前的结构可用吗 如果我在中断处理程序中执行 current gt pid 我是否可以获得我中断的进程的 pid 你可以 current gt pid存在并
  • 如何将图标放置到 QLineEdit 上?

    stackoverflow com 网站的右上角有一个带有放大镜头的搜索字段和一个灰色的 搜索 关键字 我想知道是否有可能实现相同的外观QLineEdit 如果是这样那怎么办 QLineEdit lineEdit new QLineEdit
  • 如何从“git log”中查看 Git 中的特定版本?

    My git log显示为 enter code here git trial git log commit 4c5bc66ae50780cf8dcaf032da98422aea6e2cf7 Author king lt email pro
  • QTableView 中的虚拟列?

    我开始学习 Qt4 模型 视图编程 我有初学者问题 我有一个简单的应用程序 其中显示 sqlite 表QTableView class Model QtSql QSqlTableModel def init self parent None
  • 如何在 Linux 中使用单行命令获取 Java 版本

    我想通过单个命令获取 Linux 中的 Java 版本 我是 awk 的新手 所以我正在尝试类似的事情 java version awk print 3 但这不会返回版本 我将如何获取1 6 0 21从下面的Java版本输出 java ve
  • UDP 广播发送失败:在 Linux 2.6.30 上“网络无法访问”

    我用udp广播写了一个程序 代码段如下 struct sockaddr in broadcast addr socklen t sock len sizeof broadcast addr bzero broadcast addr sock
  • 如何正确配置Tomcat SSLHostConfig?

    我正在按照本教程在 tomcat 中启用 ssl https medium com raupach how to install lets encrypt with tomcat 3db8a469e3d2 https medium com
  • 如何在 Qt-Embedded 中(正确)输出多语言文本?

    我的目标系统是 linux 3 3 7 Qt Embedded 开源版 4 8 Droid 字体 取自 fonts droid 20111207 git 1 all deb Debian 软件包并复制到 usr lib fonts目录 主要
  • 我应该使用哪个 Linux 发行版作为 Xen 主机? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我为家庭办公室订购了一台服务器 我想用 Xen 对其进行分区 我认为这将使事情保持干净并且更容易维护 我将运行 MySQL PostgreSQL
  • Linux、ARM:为什么仅当启动时存在 I2C GPIO 扩展器时才创建 gpiochip

    在 imx6sx 硬件平台 NXP 嵌入式 ARM 上使用 Linux 3 14 52 问题是设备树中指定的 PCF8575 I2C GPIO 扩展器不会实例化为 sys class gpio 结构中的设备 除非它们在内核启动期间存在 这些
  • 错误:NVIDIA-SMI 失败,因为无法与 NVIDIA 驱动程序通信

    NVIDIA SMI 抛出此错误 NVIDIA SMI 失败 因为无法与 NVIDIA 通信 司机 确保安装了最新的 NVIDIA 驱动程序并且 跑步 我清除了 NVIDIA 并按照提到的步骤重新安装了它here https askubun
  • Linux命令列出所有可用命令和别名

    是否有一个 Linux 命令可以列出该终端会话的所有可用命令和别名 就好像您输入 a 并按下 Tab 键一样 但针对的是字母表中的每个字母 或者运行 别名 但也返回命令 为什么 我想运行以下命令并查看命令是否可用 ListAllComman

随机推荐

  • 缓冲区的字节大小(Javascript / Node)[重复]

    这个问题在这里已经有答案了 如何在 JavaScript 中获取缓冲图像的大小 以字节为单位 我不允许信任客户端的文件大小 并且需要在后端进行验证作为上传验证的一部分 我的设置如下 1 我在客户端上传一个文件并将其从 React 组件发送到
  • C# 如何检查字典中的所有值是否相同?

    我有一个字典 我想编写一个方法来检查该字典中的所有值是否相同 词典类型 Dictionary
  • PostgreSql:获取格式奇怪的“带时区的时间戳”

    我正在将字段类型 带有时区的时间戳 字符串 1858 11 17 01 09 05 0000 插入到表中 并返回 stage 格式化值 05 11 29 04 02 24 这是会话 test gt create table ddtbl va
  • 当 Ruby 中需要文件时,技术上会发生什么?

    如果我有一个名为app rb这需要另一个名为foo rb Ruby 在幕后做了什么来使定义的常量foo rb变得可用在app rb 来自 Yukihiro Matsumoto 的 Ruby 编程语言 使用 load 或 require 加载
  • TrustedInstaller 正在阻止注册表写入 HKCR\DirectShow\MediaObjects\Categories

    我正在尝试安装需要我写入的 DMOHKCR DirectShow MediaObjects Categories 57f2db8b e6bb 4513 9d43 dcd2a6593125 此注册表路径受 TrustedInstaller 保
  • Xcode 4 的调试区域变量列表中的图标是什么意思?

    有谁能够提供 Xcode 4 调试区域变量列表中标记图标的明确指南吗 这是我目前拥有的清单 我不明白他们的意思 这不直观 例如 我有 BOOL 和 NSMutableString 对象 它们都带有绿色的 i 图标 我无法在 Xcode 文档
  • PlayFramework 多个 SLF4J 绑定

    我正在尝试完成一些模型的一些基本单元测试 但是我收到以下错误 现在看来我有两个 SLF4J 绑定 这是因为我使用的是 Mahout 它有一个版本的 SLF4J 而 Play 有它自己的版本 谁能告诉我如何解决这个问题 SLF4J 参见htt
  • 在 WooCommerce 中的产品 (Schema.org) 的结构化数据中添加 ean 代码 (gtin)

    我使用此代码片段在 Woocommerce 的产品架构中显示 gtin 的 ean 值 add filter woocommerce structured data product filter woocommerce structured
  • 将类实例存储到文件/数据库的最佳方法

    将类的实例存储到文件 数据库的最佳方法是什么 我们有一个名为 Command 的基类和大量派生类 用户通过向图形设计器添加命令来创建这些类的实例 他们可以在哪里配置它们 设置属性 然后我们需要一种方法将这些 命令 存储到文件中而不丢失 任何
  • 如何在opencv 4.1.0中实现LSD

    我在我的开放简历项目中实施了 LSD 一切都很顺利 直到我将 opencv 版本从 4 0 0 升级到 4 1 0 现在我得到的错误是 cv2 error OpenCV 4 1 0 io opencv modules imgproc src
  • 是否可以在 Android Studio 中本地调试 Google Play 的应用内结算?

    我在本地测试应用内订阅产品时遇到此错误 需要进行身份验证 您需要登录您的谷歌帐户 我能够检查该产品的库存 但我是否也应该能够购买它 有很多关于为什么会发生此错误的帖子 我认为这些帖子已得到解决 该产品在测试版渠道中发布 并启用应用内计费 我
  • Python,通过提取字符和数字子串来解析字符串

    我有一个字符串 是由某种机器学习算法产生的 通常由多行组成 在开头和结尾处可以有一些不包含任何字符 空格除外 的行 并且在它们之间应该有 2 行 每行包含一个单词 后跟一些数字和 有时 其他字符 像这样的东西 first word 3 5
  • .NET 代码混淆真的值得吗?

    据我所知 代码混淆其实并不难 破解 它只会推迟不可避免的事情 那么 它的目的是什么 如果有人真的想窃取您的资源 他们可以 如果有人出于无害 有用的目的需要查看您的源代码 他们就不能 您可能不应该在代码中存储任何敏感内容 因此这不应该成为问题
  • OFFSET 命令附近的语法不正确

    为什么这不起作用并给我一个 偏移命令附近的语法不正确 错误 SELECT o orderdate o orderid o empid o custid FROM Sales Orders o ORDER BY o orderdate o o
  • 实时绘制 pandas 数据框

    我是新来的matplotlib并尝试显示我通过函数 read API 从 api 下载的三个变量的最后一小时数据的实时图 数据位于带有 DateTimeIndex 的 pandas 数据框中 例如 In dframe head Out A
  • 如何获取ContainerRequest中的会话对象可以使用注释@RolesAllowed(Role_user)?

    我正在使用 App Engine 和 Jersey 构建一个应用程序 我想使用注释 RolesAllowed Role user 谁允许在请求中创建过滤器 问题是我们需要配置类SecurityContextFilter 我的目标是获得id存
  • 编译 Lua - 创建 .so 文件?

    我正在 Centos 6 5 上编译 Lua 5 2 3 编译 安装工作正常 但是 我还需要编译另一个程序的开发库 我通常会通过这样做来安装它们 yum install lua devel 问题是安装 Lua 5 1 共享库 而不是 5 2
  • 是否可以在android的上下文菜单(系统菜单)中添加一些项目

    当我输入一些文本并按住它时 上下文菜单会显示剪切 复制 选择文本等项目 有什么方法可以将我自己的自定义项目添加到此上下文菜单中吗 我不知道这件事是如何工作的 但我想应该可以在清单中注册一些东西 就像注册活动和广播一样 Thanks 欢迎任何
  • Android 房间@Relation 左加入

    假设我有两个实体 问题和答案 它们具有一对多关系 每个问题可能有 0 n 个答案 它们定义为 Entity tableName questions data class Question PrimaryKey val id Long val
  • 在 qt linux 中保存配置

    我为Linux编写了一个qt应用程序 该应用程序应该在启动时运行 我 用桌面条目做的 但我需要它更复杂 用户应该检查一个复选框 以便选择应用程序是否在启动时运行 我该如何保存他的偏好 该应用程序之前是为 Windows 编写的 并且保存在注