crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Моноширный шрифт по умолчанию
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
frg10 Дата 10.11.2009, 12:46
 
Цитата(kwisp @ 10.11.2009, 12:28) *
раз уж так хочется красивого решения.

Нашел было уже красивое:
font.setStyleHint(QFont::TypeWriter);
, но, блин, под иксами не работает. :(

Цитата(kwisp @ 10.11.2009, 12:28) *
можно потратить время на поиски кросплаттформенной программы использующей моноширные шрифты и посомотреть как делают там:)

Посмотрел в QtCreator:
#ifdef Q_WS_MAC
    enum { DEFAULT_FONT_SIZE = 12 };
    static const char *DEFAULT_FONT_FAMILY = "Monaco";
#else
#ifdef Q_WS_X11
    enum { DEFAULT_FONT_SIZE = 9 };
    static const char *DEFAULT_FONT_FAMILY = "Monospace";
#else
    enum { DEFAULT_FONT_SIZE = 10 };
    static const char *DEFAULT_FONT_FAMILY = "Courier";
#endif
#endif


Ладно, я выберу один из способов. Тему можно закрыть
kwisp Дата 10.11.2009, 12:28
  frg10,
способов много.
1. таскать нужные шрифты с собой(у меня так сделано)QFontDatabase::addApplicationFont
2. спосбоб который предложил SABROG хорош тем что ты потом сможешь выбрать на контроле каким шрифтом рисовать если их несколько. т.е. пользователь сможет выбрать доступные шрифты для отображения.
QFontDatabase в помощь.
3. QFont класс довольно таки негромоздкий. создать 3-5 шрифтов и с помощью bool QFont::exactMatch () const ,будешь знать какой шрифт доступен в системе.
4 ...



раз уж так хочется красивого решения.
можно потратить время на поиски кросплаттформенной программы использующей моноширные шрифты и посомотреть как делают там:)
frg10 Дата 8.11.2009, 16:07
 
Цитата(SABROG @ 8.11.2009, 13:37) *
Можно узнать моноширинный шрифт или нет как это делается в документации к классу QStringLi

Если вы про:
    QStringList monospacedFonts = fonts.filter(QRegExp("Courier|Fixed"));


то ИМХО это плохой вариант, т.к.
1) сначала нужно получить названия всех шрифтов в системе
2) названия шрифтов захардкодены.

Можно еще сделать так:
#ifdef Q_OS_WIN32
    const char* fontName = "Courier";
#else if defined(Q_OS_LINUX)
    const chat* fontName = "Monospace";
#else ......


Но мне хочется более красивого варианта.
SABROG Дата 8.11.2009, 13:37
  Можно узнать моноширинный шрифт или нет как это делается в документации к классу QStringList
frg10 Дата 8.11.2009, 4:21
  Пишу кастомный контрол отображающий текст программы на C. Как известно, для текстов программ лучше всего использовать моноширные шрифты. Но в разных системах эти шрифты по разному называются. Можно ли при создании шрифта не указывать family, а просто указать что нужен любой моноширный шрифт?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 15:57