Страницы

Сказка о setStyleSheet (тот который в Qt)


Редко какой разработчик не желает красоты. Картинки всякие придают радости пользователю, поднимают настроение и обогащают скучные деловые интерфейсы визуальными элементами. 

Разумеется и я в числе таких. Раньше я цеплял на кнопочки картинки, но по сети их гонять (как мне казалось) - только создавать дополнительный трафик. Как еще больше снизить объем передаваемых данных? С помощью шрифтов! Есть замечательный проект fontello который из картинок генерит шрифт. Оный шрифт уже можно использовать.

И сделал я свой шрифт KalpaSymbols, и загрузил его на сервер, и научил его загружаться в клиент и становиться доступным для использования. Для этого есть средство 
QFontDatabase::addApplicationFontFromData
И все вроде хорошо, и грузится шрифт на сторону клиента и символы нужные показывает. И вот проверил я работу этой штуки на Винде. И тут обнаружилась странность. Нет, не то чтобы метод не работает. Работает, но  (как бы это сказать) иногда. Причем закономерности в распознании нужного fontFamily я не выявил. Особенно противно когда много раз приложение стартует штатно, с нормальными шрифтовыми иконками, 


а потом РАЗ, и не работает. Или пустота, или какой-то совершенно левый шрифт загрузит.


 А шрифт для символа я определяю
setStyleSheet("QLabel{ color: #38363A; font-size: 12px; font-family: \"kalpa_symbols\"; }");
 Проверял я всяко. И смотрел регистрируется ли шрифт в списке доступных гарнитур, и вшивал шрифт непосредственно в клиент. Ничего не помогает. 

Попробую сейчас отказаться от setStyleSheet и определить явно загрузив шрифт через setFont. Может получится что.

Друзья, если у кого есть мысли на сей счет, буду очень признателен за совет. Ужели возвращаться к картинкам?
Related Posts Plugin for WordPress, Blogger...