Поломанные шрифты для QT-приложений в Linux Mint

Даже не предполагал, что в Linux Mint столкнусь с такой проблемой. Команда разработчиков этого дистрибутива вылизывает настройки интерфейса в Ubuntu до такой степени, что, вне зависимости от того, какая gui-библиотека была использована при написании программы, эта программа выглядит практически также, как и GTK-приложения. В результате, графический интерфейс Linux Mint выглядит взрослее, чем интерфейс его родителя. Однако же, я всё-таки напоролся на проблему со шрифтами. Вот как она выглядела:

Как видно на снимке, кириллические символы отображаются каким-то шрифтом с засечками с невероятным расстоянием между символами, в то время, как с латинскими символами всё в порядке — они отрисовываются тем шрифтом, который задан в настройках. Проблема возникла после того, как я поставил дополнительные ttf-шрифты из стандартного репозитория. Я не спроста упоминал GTK в начале заметки, т.к. эта ситуация наблюдается в QT-приложениях, например qtconfig-qt4 (на снимке вверху), Gwenview и Skype. Приложения же, использующие GTK для отрисовки интерфейса, отображаются при этом нормально. Собственно настройки шрифтов для QT регулируются в qtconfig. Однако, это не касается случаев, когда на закладке «Внешний вид» выбрана тема GTK+, либо пользовательсткие настройки, как это было у меня. Поскольку это Linux Mint, очевидно, что под «Пользовательскими настройками» имеется в виду та же тема GTK+, только, может быть, «подкрученная». Короче, в такой ситуации QT использует настройки шрифтов из настроек GTK. Однако в них я ничего не менял, шрифт там оставался стандартный — Sans — который, разумеется не имеет засечек 🙂 .

Скорее всего, QT в каких-то своих умолчальных настройках, которые недоступны либо труднодоступны пользователю, имеет умолчальное же семейство шрифтов. Это семейство шрифтов и используется при отрисовке gui. В моем, а возможно и во всех случаях, это оказалось семейство sans-serif — без засечек. Я предполагаю, что после установки дополнительных шрифтов, QT каким-то непонятным образом не нашла шрифт Sans (а может никогда раньше и не находила) и использовала первый попавшийся sans-serif шрифт. Который, в свою очередь, оказался без поддержки кириллицы; что привело к откату QT на первый попавшийся шрифт с поддержкой кириллицы. Смахивает, кстати, на Georgia. Но установить, что это за шрифт, конечно, трудно. Как и то, какой шрифт без засечек использовался для латинских символов. Потому что много шрифтов, которые называются по разному, но отличаются один от другого в незначительных деталях.

В общем, я подыскал подходящий шрифт без засечек, который поддерживает кириллицу, и qt нормально его находит. Выставил его в настройках GTK и перезапустил qt-приложение.

Заработало нормально 🙂

Тем не менее, этот обходной путь не решил проблему, а лишь скрыл её. Если кто-нибудь знает, как заставить QT отрисовывать нормально gui с тем шрифтом, который задан в GTK, отпишитесь, пожалуйста 🙂 .

Похожие статьи:

Запись опубликована в рубрике Linux с тэгами , , , . Создать закладку на запись. Оставить комментарий или trackback: Trackback URL.

5 комментариев

  1. Zormax
    Опубликован 19 февраля 2012 в 15:26 | Прямая ссылка

    sudo update-alternatives --config wish

    нажмите цифорку соответствующую пункту «/usr/bin/wish8.5» а потом на Enter и используем.

  2. Zormax
    Опубликован 22 февраля 2012 в 21:03 | Прямая ссылка

    Ругнется ели только одна версия tk, у многих стоит версия tk8.4 и tk8.5, так вот переключение на tk8.5 решает проблему.

    Если у вас еще нет tk8.5 — надо поставить и сделать выбор через config wish

    • kupriyan
      Опубликован 29 июля 2012 в 9:09 | Прямая ссылка

      Напишите пожалуйста подробнее для «чайников».

      У меня в Synaptic есть пакеты как tk8.4, так и tk8.5

      sudo update-alternatives --config wish выдаёт такое же ругательство.

      И что делает данная команда? И почему именно цифорку «/usr/bin/wish8.5» пункта надо нажимать?

      • Zormax
        Опубликован 29 июля 2012 в 10:47 | Прямая ссылка

        Попробуйте поставить tk8.4 и tk8.5 ну и потом в консоли:

        sudo update-alternatives --config wish

Оставить комментарий

Ваш e-mail никогда не будет опубликован или передан третьим лицам. Обязательные поля отмечены *

*
*