Qt addApplicationFont失败

时间:2015-02-18 11:47:52

标签: c++ qt

我尝试在resources.qrc文件中嵌入一个字体,并在运行时使用QFontDatabase::addApplicationFont加载它(始终返回-1)

在Ubuntu-gnome(根据文档可能失败)和Windows Server 2008上都尝试过(也失败了)。

示例字体:http://bazaar.launchpad.net/~ralsina/ubuntuone-windows-installer/no-credentials/view/head:/data/Ubuntu-R.ttf (在ubuntuone app中使用,所以应该在qt中工作)

示例加载代码:

int result = QFontDatabase::addApplicationFont(":/fonts/Ubuntu-R.ttf");

结果总是-1

1 个答案:

答案 0 :(得分:1)

感谢Akhil V Sukuuser4419802指点解决方案。它与资源有关,而不是字体。

从相对路径成功加载字体。我的lib静态链接到主应用程序,因此需要使用Q_INIT_RESOURCE

进行初始化

其他发现的问题:

  1. Q_INIT_RESOURCE cannot be in namespace

  2. 路径必须是“:/fonts/Ubuntu-R.ttf”形式,而不是“qrc:/fonts/Ubuntu-R.ttf”