Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OSX获取所有注册的字体位置_C++_Macos_Qt_Fonts - Fatal编程技术网

C++ OSX获取所有注册的字体位置

C++ OSX获取所有注册的字体位置,c++,macos,qt,fonts,C++,Macos,Qt,Fonts,我找不到在OSX上注册的所有字体位置。 我们有明显的位置: ~/Library/Fonts/ /Library/Fonts/ /System/Library/Fonts/ etc., etc. 但是,应用程序可以注册额外的位置,例如Adobe TypeKit,它可以注册此位置: /Library/Application Support/Adobe/CoreSync/plugins/livetype/.r 是否有人知道查询所有此类“附加”位置的方法(系统清楚地知道)。 NSFontManage

我找不到在OSX上注册的所有字体位置。 我们有明显的位置:

~/Library/Fonts/
/Library/Fonts/
/System/Library/Fonts/
etc., etc.
但是,应用程序可以注册额外的位置,例如Adobe TypeKit,它可以注册此位置:

/Library/Application Support/Adobe/CoreSync/plugins/livetype/.r
是否有人知道查询所有此类“附加”位置的方法(系统清楚地知道)。 NSFontManager似乎没有这种能力

我们使用Qt5作为接口,因此显而易见的答案是:

QStandardPaths::standardLocations(QStandardPaths::FontsLocation);
然而,这只返回2个位置,由于Qt5也不再提供获取freetype句柄的API,我们只能在获取路径的过程中四处奔波。这两个Qt问题都是记录的问题

一旦我们有了位置,其他一切都是跨平台的-他们进入自由类型和分解的轮廓可以得到矢量化

任何想法都值得赞赏。
谢谢

您可以使用
QPainterPath
对任何字体轮廓进行矢量化。你还需要明确地处理字体位置和freetype吗?我也有同样的问题,最后只使用了你提到的前三个文件夹(硬编码,我没有使用
qstandardpath::FontsLocation
,因为它不会返回所有文件夹)。我很想知道你是否能找到解决办法。你在Windows方面也解决了这个问题吗?除了使用DirectWrite,我找不到将注册表中的字体名称映射到磁盘上实际路径的方法,因此我在Windows上仍然缺少一些字体…QPainterPath很有趣-如果我使用HTML格式化文本(因为您无法使用QFonts设置紧排和前导比例),这可能会起作用。代码也会少很多:)谢谢你的提示。对不起,Uflex,我没有在Windows端解决这个问题,我下一步要去那里。我仍然对解决方案感兴趣,因此如果出现,我会通知您。您可以使用
QPainterPath
对任何字体轮廓进行矢量化。你还需要明确地处理字体位置和freetype吗?我也有同样的问题,最后只使用了你提到的前三个文件夹(硬编码,我没有使用
qstandardpath::FontsLocation
,因为它不会返回所有文件夹)。我很想知道你是否能找到解决办法。你在Windows方面也解决了这个问题吗?除了使用DirectWrite,我找不到将注册表中的字体名称映射到磁盘上实际路径的方法,因此我在Windows上仍然缺少一些字体…QPainterPath很有趣-如果我使用HTML格式化文本(因为您无法使用QFonts设置紧排和前导比例),这可能会起作用。代码也会少很多:)谢谢你的提示。对不起,Uflex,我没有在Windows端解决这个问题,我下一步要去那里。我仍然对一个解决方案感兴趣,所以如果出现一个,我会让你知道。