2015-02-18 4 views
0

Я пытаюсь встроить шрифт в resources.qrc файл и загрузить его во время выполнения с QFontDatabase::addApplicationFont (всегда возвращает -1)Qt addApplicationFont терпит неудачу

Пробовал как на Ubuntu-гном (который может потерпеть неудачу согласно документации), и на Windows Server 2008 (сбой тоже).

Пример шрифта: http://bazaar.launchpad.net/~ralsina/ubuntuone-windows-installer/no-credentials/view/head:/data/Ubuntu-R.ttf (используется в ubuntuone приложение, так что должно работать в Qt)

Пример кода загрузки:

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

Результат всегда -1

+1

который является ваш каталог сборки, попробуйте относительный путь из каталога сборки, вы пробовали это? –

+1

Используете ли вы Q_INIT_RESOURCE()? – Matt

ответ

0

Благодаря как Akhil V Suku и user4419802 для указывающего решения. Это было связано с ресурсами, а не с шрифтами.

Шрифт успешно загружен с относительного пути. Мой Lib связан статически основного приложения, так что требуется инициализация с Q_INIT_RESOURCE

Дополнительные пятнистых вопросов:

  1. Q_INIT_RESOURCE cannot be in namespace.

  2. Путь должен быть ": /fonts/Ubuntu-R.ttf" форма, а не в "QRC: /fonts/Ubuntu-R.ttf"

Смежные вопросы