Qt - 访问包路径

2023-12-05

Qt 文档“Mac 的差异”页面提供了以下用于访问应用程序的捆绑路径的代码:

CFURLRef appUrlRef = CFBundleCopyBundleURL(CFBundleGetMainBundle());
CFStringRef macPath = CFURLCopyFileSystemPath(appUrlRef, kCFURLPOSIXPathStyle);
const char *pathPtr = CFStringGetCStringPtr(macPath,CFStringGetSystemEncoding());
qDebug("Path = %s", pathPtr);
CFRelease(appUrlRef);
CFRelease(macPath);

然而,与更简单的东西相比,它有什么优点,如下所示:

QDir dir = QDir(QCoreApplication::applicationDirPath());
dir.cdUp();
dir.cdUp();
return dir;

切勿使用第一个代码。正如 Qt 文档中所写,它可能无法在非英语环境中工作,因为文件名编码不是由CFStringGetSystemEncoding(),它返回用户的主要非 unicode 编码。相反,文件名始终由 UTF8 编码(有一个细微的变体。)

const char *pathPtr = CFStringGetCStringPtr(macPath, kCFStringEncodingUTF8);

更准确地说,您需要使用CFStringGetFileSystemRepresentation.

QCoreApplication::applicationDirPath()(大部分)正确地考虑到了这些微妙之处,因此如果您希望您的应用程序在非英语 Mac 上运行,您应该使用后一种方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt - 访问包路径 的相关文章

  • C/C++ 中随机数生成器的实现[重复]

    这个问题在这里已经有答案了 我对 C 中随机数生成器的实现有点困惑 它也与 C 中的明显不同 如果我理解正确 对 srand seed 的调用会以某种方式初始化可通过 rand 访问的隐藏变量 种子 该变量又将函数指向预先生成的序列 例如例
  • C++ - 模板专业化和部分专业化

    我一直在互联网和 stackoverflow 上寻找具体的答案 但我似乎找不到 我必须创建一个通用类 然后实现特定的功能 我的具体说明是 您需要使用模板表达式参数以及模板类专业化和部分专业化 我有一个模板类 template
  • 可选参数“必须是编译时常量”

    我有一个类分为两个部分文件 如下所示 public partial class PersonRepository BaseRepository
  • WPF - 按多列排序时使用自定义比较器

    我有一个 ListView GridView 我想按 2 列排序 因此如果第 1 列中有 2 个以上的项目具有相同的值 它将按第 2 列排序 非常简单 但是在对 A Z 进行排序时 空字符串会出现在顶部 我想把它们移到底部 我制作了一个比较
  • 使用 QSet 作为 Qt 地图容器中的键

    我需要一个映射 其中键是唯一的 并且每个键都是一组或自定义 POD 结构 其中包含 3 个数据项 这些值只是指向对象实例的指针 从阅读Qt 的 QMap 与 QHash 的文档 http qt project org doc qt 4 8
  • 隐形打开的弹出窗口

    第二天就解决这个问题 要重现 请创建新的 WPF 应用程序 xaml
  • C# ConfigurationManager 从 app.config 检索错误的连接字符串

    我有一个简单的 WinForms 应用程序 它最终将成为一个游戏 现在 我正在研究它的数据访问层 但遇到了障碍 我创建了一个单独的项目 名为DataAccess在其中 我创建了一个本地 mdfSQL Server 数据库文件 我还创建了一个
  • 将占位符文本添加到文本框

    我正在寻找一种将占位符文本添加到文本框的方法 就像在 html5 中使用文本框一样 IE 如果文本框没有文本 则会添加文本Enter some text here 当用户单击它时 占位符文本消失并允许用户输入自己的文本 如果文本框失去焦点并
  • 实体框架7审计日志

    我正在将一个旧项目移植到 ASP NET 5 和 Entity Framework 7 我使用数据库优先方法 DNX 脚手架 来创建模型 旧项目基于Entity Framework 4 审计跟踪是通过重写实现的SaveChanges的方法D
  • Windows 程序如何临时更改其时区?

    我写了一个函数来返回time t与给定日期的午夜相对应的值 当给定日期没有午夜时 它返回最早可用的时间 例如 当埃及进入夏令时时 这种情况就可能发生 今年 时间更改于 4 月 29 日晚上午夜生效 因此时钟直接从 23 59 转到 01 0
  • 我们应该使用 Eval 还是 Databind 事件?

    当使用 Asp Net 并使用 ListView 等控件创建网站时 使用 Eval 命令是一个好习惯吗 还是应该在 databind 事件中填充文字和数据 取决于您是否想在更新事件上写回数据 在这种情况下数据绑定 如果您只想读取该数据 可以
  • C++ 析构函数:何时释放内存?

    如果我删除一个导致其析构函数被调用的对象 那么内存是在析构函数完成函数中的任何操作之前还是之后被释放 仅当最小派生类子对象被销毁后才会释放内存 所以如果你有 class Base class Derived public Base publ
  • ASP MVC 5 - 403 customError 不起作用

    我正在尝试为我的应用程序创建自定义错误页面 它在大部分情况下都有效 但不适用于403 errors 我的网络配置
  • 从 ef core 的子集合中删除一些项目

    我有一个父表和子表 其中父表与子表具有一对多关系 我想删除一些子项 并且希望父项的子集合反映该更改 如果我使用删除选定的子项RemoveRange 那么子集合不会更新 如果我使用Remove从子集合中删除子集合然后 显然 它不如使用效率高R
  • 使用 cudamalloc()。为什么是双指针?

    我目前正在浏览有关的教程示例http code google com p stanford cs193g sp2010 http code google com p stanford cs193g sp2010 学习CUDA 演示的代码 g
  • ASP.NET Web API Swagger(Swashbuckle)重复OperationId

    I have a web api controller like below In swagger output I am having the below image And when I want to consume it in my
  • 语义问题 Qt Creator:命名空间“std”中没有名为“cout”的成员

    我开始使用 Qt Creator 编写代码 对于 C 文件 我遇到很多语义问题 99 是 命名空间 yyy 中没有名为 xxx 的成员cpp文件构建 编译和输出没有问题 如果我点击例如cout 我已链接到 iostream 我是否需要在 Q
  • 使 C# 编译器相信执行将在成员返回后停止

    我认为目前这是不可能的 或者这是否是一个好主意 但这是我刚才正在考虑的事情 我使用 MSTest 对我的 C 项目进行单元测试 在我的一项测试中 我执行以下操作 MyClass instance try instance getValue
  • C# 中成员访问中的问号是什么意思?

    有人可以向我解释一下以下代码中会员访问中的问号是什么意思吗 它是标准 C 的一部分吗 尝试在 Xamarin Studio 中编译此文件时出现解析错误 this AnalyzerLoadFailed Invoke this new Anal
  • XmlDocument Save 使文件保持打开状态

    我有一个简单的 C 函数 可以创建一个基本的 XML 文件并保存 private void CreateXMlFile string Filename string Name string Company XmlDocument doc n

随机推荐

  • 为什么不允许“SplFileInfo”序列化?

    我正在尝试存储一个数组SplFileInfo缓存中的实例serialize命令 但该命令抛出此异常 Exception with message Serialization of SplFileInfo is not allowed 为什么
  • Pygame:画线

    在我之前的问题中Python 中的 For 循环函数 我在放置包含为刽子手游戏画线的命令的函数时遇到了麻烦 它并没有完全划清界限 我首先怀疑这是 for 循环或函数的问题 现在我意识到 Pygame 存在一些问题 我尝试在加拿大国家使用此代
  • PDO:用bindvalue和%来准备

    我在各个网站上查看了一个多小时 但无法解决我的问题 所以这是有效的代码 animes array q this gt db gt query SELECT id nom nom id FROM animes WHERE nom LIKE c
  • django 1.11.4 中的错误('datetime.datetime'对象没有属性'split')

    我正在通过官方文档上的教程学习 django 版本 1 11 4 我使用 python 3 6 5 和 mysql8 作为数据库 我还使用 mysql connector django 连接到 mysql 数据库 我尝试制作第一个 Djan
  • 正则表达式。查找包含某个单词的段落

    在这样的文本中 p 1 bla bla em bla em bla bla p p 2 bla bla em bla em bla TEXT bla p p 3 bla bla em bla em bla bla p p 4 bla bla
  • Google App Engine - 单个数据存储大约使用多少配额?

    数据存储放入的延迟约为 150 毫秒 http code google com status appengine detail datastore 2010 03 11 ae trust detail datastore put laten
  • 尝试使用 C# ado,net 将行插入到 sql server 数据库

    我正在尝试在控制台应用程序中使用 Ado Net 在 SQL Server 数据库中插入一行 我正在从键盘读取输入 这是我的代码 private void InsertStudents string con SqlConnection Co
  • Spring + JPA + Hibernate

    我是春天的新手 我正在尝试使用 Spring 3 1 3 和 JPA 2 0 设置简单的 Web 应用程序 我已将所有必需的库添加到 WEB INF lib 中 启动过程中没有错误 但我的 DaoImpl 文件中的entityManager
  • 从项目目录内的文件夹中读取文件

    在 JSP 项目中 我正在从目录中读取文件 如果我给出完整路径 那么我可以轻松读取该文件 BufferedReader br new BufferedReader new FileReader C ProjectFolderName fil
  • for(;;)循环解释

    在 JS 中 我偶然发现了一种 for 循环 它是for 其功能类似于while true 环形 for 循环括号中的分号起什么作用 for statement 1 statement 2 statement 3 code block to
  • scikit-learn 中每个数据分割的交叉验证指标

    我需要为 X test y test 数据的每个分割显式获取交叉验证统计信息 因此 为了尝试这样做 我做了 kf KFold n splits n splits X train tmp y train tmp X test tmp y te
  • 带有辅助工具提示的 EditText

    我在 iPhone 上有这个应用程序 我想使其适用于 Android 在 iPhone 上 当开始在 EditText 中编辑文本时 显示屏顶部会显示带有消息的工具提示 我想让它也适用于 Android 但我没有找不到任何有帮助的东西 这里
  • 如何在c#项目中使用c++ dll? [复制]

    这个问题在这里已经有答案了 可能的重复 在 C 应用程序中使用 C 类 DLL 我尝试在 c 中添加引用以添加 c dll 失败 如果您有任何其他方法在 c 中添加或使用 c dll 我们该如何使用 我在 C 项目中添加 dll 的错误在哪
  • Visual Basic 6 中 Shell 进程的标准输出读取

    首先 我要声明我不是 Visual Basic 6 专家 我的需要是 从 VB6 客户端代码启动外部 exe 文件 等待该过程完成 并在执行期间 即时 读取来自其标准输出的消息 以便我可以将其打印在文本文件小部件或类似部件上 我想知道是否有
  • 带有本地 docker 的 Jenkins 服务器

    我的 CI 实施有问题 我安装了 Jenkins 服务器并创建了构建管道 来自本教程 https getintodevops com blog building your first docker image with jenkins 2
  • php 邮件附件

    我一直在使用这个脚本向某些员工发送电子邮件 但由于我的系统发生了变化 我现在必须随电子邮件发送附件 并且我已经尝试了多种代码来完成此操作 但没有成功 我仍然收到电子邮件 但没有附件 在这种情况下毫无意义 我已将我正在使用的脚本放在下面 我已
  • 我可以使用 C++ 程序之外的随机内存地址访问随机数据吗

    如果有两个程序正在运行 其中一个程序在某个内存地址存储一个数字 如果我知道该内存地址 并将其硬编码到第二个程序中并打印出该地址处的值 它实际上会得到该信息吗 C 是否允许程序访问 RAM 中存储的任何数据 无论它是否是程序的一部分 在没有虚
  • CSS 负边距定位

    使用负边距进行定位可以吗 我当前的网站中有很多内容 感觉这不是一种稳定的定位方式 我通常也建议使用它们 例如 我有一个结账页面 其中三个 div 彼此叠置 div class A header div div class B content
  • 为什么 Skylake 在单线程内存吞吐量方面比 Broadwell-E 好很多?

    我们有一个简单的内存吞吐量基准 它所做的只是对一大块内存重复进行memcpy 查看几台不同机器上的结果 针对 64 位编译 Skylake 机器的表现明显优于 Broadwell E 操作系统 Win10 64 处理器速度和 RAM 速度
  • Qt - 访问包路径

    Qt 文档 Mac 的差异 页面提供了以下用于访问应用程序的捆绑路径的代码 CFURLRef appUrlRef CFBundleCopyBundleURL CFBundleGetMainBundle CFStringRef macPath