我有一个用TTF11.4开发的Qt嵌入式应用程序,其中我需要加载OpenSuse字体文件。然而,当我调用int QFontDatabase::addApplicationFont()函数时,它返回的是-1。
通过阅读文档,我发现在没有fontconfig的Unix/X11平台上添加应用程序字体目前不受支持。
我通过YaST检查我是否安装了fontconfig,它是否已经安装了--但我不认为这是相关的,因为我使用的是一个qt-embedded库。我在想我需要有支持字体配置的qt嵌入库,但是我该怎么做呢?
fontconfig支持qt-embedded吗?有人能告诉我这是怎么回事吗?
发布于 2012-12-25 11:21:31
您可以使用QPA或Qt Platform Abstraction (以前称为Lighthouse)。您需要创建一个公开自定义QPlatformFontDatabase的QPlatformIntegration实现(可以作为插件,也可以直接使用)。这里的技巧是重用Qt现有的QFontconfigDatabase实现(它只是QBasicUnixFontDatabase的子类)。
这正是我们对PhantomJS使用的技术,因此它可以在Linux上使用headlessly (没有X11),同时仍然利用Fontconfig (以及FreeType)进行文本呈现。
不幸的是,我认为Qt4.5太老了,不能运行灯塔。要么迁移到官方支持QPA的4.8版本,要么尝试支持灯塔。
https://stackoverflow.com/questions/7077528
复制相似问题