我想在我的软件中使用三种字体:
这些字体没有重叠。
我想设置我的应用程序,以便立即使用所有这些字体,因为来自不同语言的字符可能出现在我的软件中的相同上下文中。
如果在FontA中找到了某个字符,请使用它。否则,查看FontB,如果找到则使用它。看看FontC作为最后的手段,如果找到,请使用它,否则什么都不做。
如何设置Qt以这种方式运作?
(我的环境是嵌入式linux,Qt 4.8)
P.S。:我尝试过QFont :: insertSubstitution,但是在系统上没有安装FontA的情况下使用它,因此在我的情况下并没有真正帮助。
P.P.S。:将这些字体合并为单一字体是不可能的,因为它们是专有字体。
答案 0 :(得分:1)
像其他人说的那样 - 如果您的QT版本使用fontconfig通过fontconfig执行,它的唯一功能是管理智能字体替换。如果你的版本没有使用fontconfig,那你就不幸了,因为我怀疑是否有人花了很多时间让它工作,因为fontconfig已经广泛使用。
答案 1 :(得分:1)
尝试使用此方法:How to (properly) output multilingual text in Qt-Embedded?
它同时适用于许多语言(西里尔语,欧洲语,泰语,日语等)。
export QWS_NO_SHARE_FONTS=1
-fn "Droid Sans"
参数答案 2 :(得分:0)
对于这种情况,Qt有一个后备机器。 在Qt4 documentation我发现您可以自定义此回退机制。看起来很有希望,应该解决你的问题。
在Qt5中,我没有看到与QPlatformFontDatabase
课程的直接链接。仅this。看起来你应该写一些插件。
另外this page suggest that QPlatformFontDatabase apeared in Qt 5.2所以它应该在Qt5中工作。由于某种原因,Qt5没有关于它的文档。
你应该尝试一下,看看或至少选择一个来源。