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


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

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

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


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


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

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

    Друзья, если у кого есть мысли на сей счет, буду очень признателен за совет. Ужели возвращаться к картинкам?
  • Поиск по этому блогу

    Copyright (c) Oleg Shall. Технологии Blogger.