我正在编写一个tcl/tk应用程序,我想在其中使用字体-令人敬畏的图标。
在原则上,这很好:只要用正确的unicode字符显示一些字符串/标签,如果安装了适当的字体,它就会呈现)
现在,在我的开发机器,我有字体-可怕的安装作为一个普通的机器。我不能指望在部署机器上出现这种情况。
因此,我想知道,系统是否可以呈现一个给定的字符,或者它是否只是使用一个字形未找到的占位符。在后一种情况下,我会回到一些不太好的表现.
(我不希望我的用户不得不回答这样的问题:“这个字符串看起来正确吗?”)
例如,在我的应用程序中,符号"“()显示为堆栈溢出图标。在我的浏览器中,它被呈现为一个未找到的字形。
那么,是否有一种方法可以以编程的方式找出(使用的)系统字体是否为给定字符提供了字形?
发布于 2017-05-05 00:07:23
不幸的是,没有;它完全缺少功能。你能得到的最接近的是获取一个字符的实际字体信息(我认为需要8.6 ),或者测量它的宽度,但这并没有真正的帮助:
% font actual TkFixedFont
-family Monaco -size 11 -weight normal -slant roman -underline 0 -overstrike 0
% font actual TkFixedFont \uf16c
-family Monaco -size 11 -weight normal -slant roman -underline 0 -overstrike 0
% font measure TkFixedFont \uf16c
14
(该字符以该字体呈现为此系统上未找到的符号。)
https://stackoverflow.com/questions/43787208
复制