Home · All Classes · Main Classes · Grouped Classes · Modules · Functions |
Класс QFont определяет шрифт, используемый для рисования текста. Далее...
#include <QFont>
Класс QFont определяет шрифт, используемый для рисования текста.
При создании объекта QFont Вы задаете желаемые признаки шрифта. Qt будет использовать шрифт с этими признаками или, если такого шрифта не существует, ближайший подходящий по признакам установленный шрифт. Признаки фактически используемого шрифта можно получить с помощью объекта QFontInfo. Если оконная система обеспечивает точное соответствие, то exactMatch() возвращает true. Используйте QFontMetrics для получения размеров. Например, длину строки в пикселях можно получить с помощью QFontMetrics::width().
Для установки шрифта приложения по умолчанию используйте QApplication::setFont().
Если выбранный шрифт не содержит все знаки, которые должны быть отображены, то QFont попытается найти недостающие знаки в ближайших подходящих шрифтах. Когда QPainter рисует символ с помощью шрифта, QFont сообщает, содержит ли он этот символ; если не содержит, то QPainter рисует незаполненный квадрат.
Создать QFonts можно так:
QFont serifFont("Times", 10, Bold); QFont sansFont("Helvetica [Cronyx]", 12);
Атрибуты могут быть установлены в конструкторе или позже, с помощью таких функций, как setFamily(), setPointSize(), setPointSizeFloat(), setWeight() и setItalic(). Остальные признаки должны быть установлены после создания с помощью setBold(), setUnderline(), setOverline(), setStrikeOut() и setFixedPitch(). Объекты QFontInfo должны создаваться после установки атрибутов шрифта. Объект QFontInfo не будет изменяться, даже если изменяются настройки шрифта. Соответствующие "get"-функции, например, family(), pointSize() и т.д., возвращают установленный значения, даже если используемые значения отличаются от установленных. Фактически используемые значения можно получить с помощью объекта QFontInfo.
Если требуемое семейство шрифтов недоступно, Вы можете использовать алгоритм соответствия шрифтов для выбора специфических QFont::StyleHint и QFont::StyleStrategy с помощью setStyleHint(). Семейство шрифтов по умолчанию (соответствующее текущим предпочтениям стиля) возвращается defaultFamily().
Алгоритм соответствия шрифта имеет функции lastResortFamily() и lastResortFont() в случаях, когда подходящее соответствие не найдено. Вы можете обеспечивать замену для семейства шрифтов по имени используя insertSubstitution() и insertSubstitutions(). Замены могут быть удалены с помощью removeSubstitution(). Используйте substitute() для получения названия первой замены семейства или, если никакой замены не предусмотрено, названия самого семейства. Для получения списка замен семейства шрифтов (который может быть пустым) используйте substitutes().
Каждый объект QFont имеет ключ key() который может быть использован, например, как ключ в кэше или в словаре. Если Вы хотите получить пользовательские предпочтения шрифта, используйте QSettings. Записать информацию о шрифте можно с помощью toString(), а прочитать ее назад с помощью fromString(). Функции operator<<() и operator>>() также подходят для этого, но они работают с потоками данных.
Возможно задать высоту символов, отображаемых на экране, в пикселях с помощью setPixelSize(); однако использование setPointSize() имеет тот-же эффект и обеспечивает независимость от устройства.
В X11 Вы можете устанавливать шрифт, используя его заданное системное название, с помощью setRawName().
Подгрузка шрифтов может быть дорогой операцией, особенно в X11. QFont оптимизирован для ускорения таких дорогих операций, как копирование объектов QFont, а также он кэширует результаты медленных функций оконной системы, от которых это зависит.
Алгоритм поиска соответствующего шрифта выполняет следующие действия:
Обратите внимание: фактический шрифт, найденный с помощью алгоритма поиска соответствующего шрифта, может меняться от платформы к платформе.
Как только шрифт найден, оставшиеся признаки согласуются в порядке следующего приоритета:
Если у Вас имеется шрифт соответствующий искомому семейству, даже если ни один из его признаков не соответствует требуемым, то этот шрифт все-равно будет выбран вместо того, который не соответствует искомому семейству, но имеет соответствующие все остальные признаки. Поэтому семейство шрифтов - это доминирующий критерий поиска.
Размер шрифта считается соответствующим, если он отличается от требуемого не более, чем на 20%. Если искомому шрифту соответствуют несколько шрифтов, отличающиеся только размером, то выбирается самый близкий к искомому по размеру.
Фактически семейство шрифтор, размер, толщина и другие признаки шрифта, используемые для отображения текста, будут зависеть от того, что является доступным для выбранного семейства шрифтов под данной оконной системой. Объект QFontInfo может использоваться для получения фактических значений используемых для отображения текста.
Примеры:
QFont f("Helvetica");
Если у Вас есть и Adobe, и Cronyx Helvetica, Вы можете поступить проще.
QFont f("Helvetica [Cronyx]");
Вы можете задать подмножество, которое Вы хотите получить в семействе шрифтов. Шрифт f, в вышеприведенном примере, будет установлен в "Helvetica [Cronyx]".
Для определения характеристик шрифта, фактически используемого оконной системой, используется объект QFontInfo, например:
QFontInfo info(f1); QString family = info.family();
Для определения метрик шрифта используется объект QFontMetrics, например:
QFontMetrics fm(f1); int textWidthInPixels = fm.width("How many pixels wide is this text?"); int textHeightInPixels = fm.height();
Для получения общей информации о шрифтах см. comp.fonts FAQ. Информация о кодировании может быть найдена на странице Roman Czyborra.
QWidget::setFont() QPainter::setFont() QFont::StyleHint QFont::Weight
См. также QFontMetrics, QFontInfo, QFontDatabase и QApplication::setFont().
Предопределенные значения растяжения соответствующие CSS-соглашениям. Чем больше значение, тем больше растягивается текст.
Константа | Значение | Описание |
---|---|---|
QFont::UltraCondensed | 50 | 50 |
QFont::ExtraCondensed | 62 | 62 |
QFont::Condensed | 75 | 75 |
QFont::SemiCondensed | 87 | 87 |
QFont::Unstretched | 100 | 100 |
QFont::SemiExpanded | 112 | 112 |
QFont::Expanded | 125 | 125 |
QFont::ExtraExpanded | 150 | 150 |
QFont::UltraExpanded | 200 | 200 |
См. также setStretch() и stretch().
Данное перечисление описывает различные стили написания, используемых при отображении текста.
Константа | Значение | Описание |
---|---|---|
QFont::StyleNormal | 0 | Стандартное написание, текст не стилизован. |
QFont::StyleItalic | 1 | Курсивное написание специально предназначенное для представления выделенного текста. |
QFont::StyleOblique | 2 | Стандартное написание приведенное к курсиву. |
См. также Weight.
Предпочтения стиля используемые алгоритмом соответствия шрифтов для поиска семейства шрифтов на замену по умолчанию если нужное семейство недоступно.
Константа | Значение | Описание |
---|---|---|
QFont::AnyStyle | алгоритм соответствия шрифтов не используется. Это значение по умолчанию. | |
QFont::SansSerif | Helvetica | алгоритм соответствия шрифтов предпочитает шрифты sans serif. |
QFont::Helvetica | 0 | синоним SansSerif. |
QFont::Serif | Times | алгоритм поиска соответствующего шрифта предпочитает шрифты serif. |
QFont::Times | синоним Serif. | |
QFont::TypeWriter | Courier | алгоритм соответствия шрифтов предпочитает шрифты с фиксированной шириной. |
QFont::Courier | синоним TypeWriter. | |
QFont::OldEnglish | алгоритм соответствия шрифтов предпочитает декоративные шрифты. | |
QFont::Decorative | OldEnglish | синоним OldEnglish. |
QFont::System | алгоритм соответствия шрифтов предпочитает системные шрифты. |
Стратегии стиля указывают алгоритму поиска соответствующего шрифта какие шрифты должны использоваться для нахождения соответствия требуемому семейству шрифтов.
Доступны следующие стратегии:
Константа | Значение | Описание |
---|---|---|
QFont::PreferDefault | 0x0001 | стратегия по умолчанию. Нет предпочтений по типу шрифта. |
QFont::PreferBitmap | 0x0002 | предпочтительны шрифты, основанные на битовых картах (в противоположность контурным шрифтам). |
QFont::PreferDevice | 0x0004 | предпочтительны шрифты устройства. |
QFont::PreferOutline | 0x0008 | предпочтительны контурные шрифты (в противоположность шрифтам, основанным на битовых картах). |
QFont::ForceOutline | 0x0010 | требует использования контурных шрифтов. |
QFont::NoAntialias | 0x0100 | требует не сглаживать шрифты. |
QFont::PreferAntialias | 0x0080 | сглаживает шрифты, если это возможно. |
QFont::OpenGLCompatible | 0x0200 | требует использования шрифтов, совместимых с OpenGL. |
Любое из вышериведенных значений может быть скомбинировано с помощью опрератора OR с одним из следующих флагов:
Константа | Значение | Описание |
---|---|---|
QFont::PreferMatch | 0x0020 | предпочтительно точное соответствие. Алгоритм соответствия шрифтов будет пытаться установить точно заданный размер шрифта. |
QFont::PreferQuality | 0x0040 | предпочтителен более качественный шрифт. Алгоритм соответствия шрифтов будет использоваться самый близкий к требуемому стандартный размер шрифта. |
Qt использует масштаб толщины от 0 до 99, но это не то-же самое, что масштаб в Windows или CSS. Толщина 0 означает очень светные символы, а символы толщиной 99 будут очень черными.
Данное перечисление содержит предопределенные толщины шрифта:
Константа | Значение | Описание |
---|---|---|
QFont::Light | 25 | 25 |
QFont::Normal | 50 | 50 |
QFont::DemiBold | 63 | 63 |
QFont::Bold | 75 | 75 |
QFont::Black | 87 | 87 |
Создает объект шрифта, использующий шрифт приложения по умолчанию.
См. также QApplication::setFont() и QApplication::font().
Создает объект шрифта заданного семейства family, размера pointSize, толщины weight и начертания italic.
Если pointSize <= 0, то размер устанавливается в 12.
Имя семейства family может включать имя набора, т.е. "Helvetica [Cronyx]". Если family доступно более, чем из одного набора и имя набора не задано, то выбирается произвольный набор. Если семейство шрифтов недоступно, будет использован алгоритм поиска соответствующего шрифта.
См. также Weight, setFamily(), setPointSize(), setWeight(), setItalic(), setStyleHint() и QApplication::font().
С помощью шрифта font создает шрифт для устройства рисования pd.
Создает копию font.
Разрушает шрифт и освобождает все занятые ресурсы.
Возвращает true если значение weight() больше QFont::Normal; в противном случае возвращает false.
См. также weight(), setBold() и QFontInfo::bold().
Возвращает имя семейства шрифтов, соответствующего текущим предпочтениям стиля.
См. также StyleHint, styleHint() и setStyleHint().
Возвращает true если доступен шрифт оконной системы, точно соответствующий настройкам данного шрифта.
См. также QFontInfo.
Возвращает требуемое имя семейства шрифтов, т.е. имя, заданное в конструкторе или позже, с помощью вызова setFont().
См. также setFamily(), substitutes() и substitute().
Возвращает true если была установлена фиксированная ширина; в противном случае возвращает false.
См. также setFixedPitch() и QFontInfo::fixedPitch().
Делает данный шрифт соответствующим описанию descrip. Описание - это разделенный запятой список атрибутов, возвращаемый toString().
См. также toString().
Возвращает заголовок оконной системы для данного шрифта для низкоуровневого доступа. Использование данной функции делает приложение не портируемым.
Вставляет substituteName в таблицу замены для семейства familyName.
См. также insertSubstitutions(), removeSubstitution(), substitutions(), substitute() и substitutes().
Вставляет список семейств substituteNames в список замены для семейства familyName.
См. также insertSubstitution(), removeSubstitution(), substitutions() и substitute().
Возвращает true если данный шрифт и шрифт f являются копиями друг друга, т.е. один из них был создан, как копия другого и ни один из них с тех пор не менялся. Эта проверка намного жестче, чем равенство.
См. также operator=() и operator==().
Возвращает true если style() данного шрифта не является QFont::StyleNormal.
См. также setItalic() и style().
Возвращает true если кернинг используется для отображения текста с этим шрифтом.
См. также setKerning().
Возвращает ключ шрифта, как текстовое представление данного шрифта. Обычно ключ используется для кэширования или словаря шрифтов.
См. также QMap.
Возвращает название "последнего использованного" семейства шрифтов.
Текущая реализация проверяет широкий набор обычных семейств шрифтов и возвращает первое найденное. Возможно, никакое семейство не будет найдено, в этом случае возвращается пустая строка.
См. также lastResortFont().
Возвращает название "последнего использованного" шрифта алгоритма соответствия шрифтов. Используется когда последнее использованного семейство шрифтов недоступно. Даннная функция всегда возвращает имя. Если необходимо, возвращается что-то вроде "fixed" или "system".
Текущая реализация проверяет широкий набор обычных шрифтов и возвращает первый найденный. Реализация со временем может измениться, но какая-то строка всегда будет возвращаться.
Теоретически возможно, что действительно не будет найден lastResortFont(), в этом случае Qt прервет выполнение с сообщением об ошибки. Мы не смогли предусмотреть ситуацию, в которой это может произойти. Пожалуйста, сообщите об ошибке если она происходит, будет хорошо, если в сообщение об ошибке Вы включите список установленных шрифтов.
См. также lastResortFamily() и rawName().
Возвращает true если установлена верхняя линия; в противном случае возвращает false.
См. также setOverline().
Возвращает размер в пикселях, установленный с помощью setPixelSize(). Возвращает -1 если размер был установлен с помощью setPointSize() или setPointSizeF().
См. также setPixelSize(), pointSize(), QFontInfo::pointSize() и QFontInfo::pixelSize().
Возвращает размер шрифта в пунктах. Возвращает -1 если размер шрифта задан в пикселях.
См. также setPointSize() и pointSizeF().
Возвращает размер шрифта в пунктах. Возвращает -1 если размер шрифта задан в пикселях.
См. также pointSize(), setPointSizeF(), pixelSize(), QFontInfo::pointSize() и QFontInfo::pixelSize().
Возвращает true если для задания соответствия имени шрифта используется прямой способ; в противном случае возвращает false.
См. также setRawMode() и rawName().
Возвращает название шрифта в основной оконной системе.
В Windows и Mac OS X это, обычно, только название семейства TrueType-шрифта.
В X11 возвращаемое значение зависит от того, был ли Qt построен с поддержкой FontConfig, это может быть или XLFD (X Логическое Описание Шрифта), или образец FontConfig. XLFD может быть возвращен, даже если поддрежка FontConfig была установлена.
Использование возвращаемого данной функцией значение делает, обычно, приложение не портируемым.
См. также setRawName().
Удаляет все замены для familyName.
См. также insertSubstitutions(), insertSubstitution(), substitutions() и substitute().
Возвращает новый QFont, все атрибуты которого скопированы у other.
Если enable равно true, устанавливает толщину шрифта в QFont::Bold; в противном случае устанавливает толщину шрифта в QFont::Normal.
Для более точного управления толщиной шрифта используйте setWeight().
См. также bold() и setWeight().
Устанавливает имя семейства для данного шрифта. Имя семейства нечувствительно к регистру и может включать имя набора.
Название семейства (family) может включать имя фабрики, например, "Helvetica [Cronyx]". Если семейство family доступно более, чем из одного набора и набор не определен, то выбирается произвольный набор. Если семейство недоступно, то будет использован алгоритм поиска соответствующего шрифта.
См. также family(), setStyleHint() и QFontInfo.
Если enable равно true, устанавливается фиксированная ширина символов; в противном случае фиксированная ширина символов отменяется.
См. также fixedPitch() и QFontInfo.
Если enable равно true, то style() шрифта устанавливается в QFont::StyleItalic; в противном случае стиль шрифта устанавливается в QFont::StyleNormal.
См. также italic() и QFontInfo.
Если enable равно true, допускается кернинг символов; в противном случае кернинг не допускается. По умолчанию кернинг доступен.
Если кернинг доступен, то метрики символов могут увеличиваться меньше, чем на ширину символа, даже для текста Latin. Другими словами, предположение о том, что width('a') + width('b') равно width("ab") не всегда истинно.
См. также kerning() и QFontMetrics.
Если enable равно true, то включается верхняя линия; в противном случае верхняя линия отключается.
См. также overline() и QFontInfo.
Устанавливает размер шрифта в pixelSize пикселей.
Использование данной функции делает шрифт зависимым от устройства. Для установки размера шрифта независимым от устройства образом, используйте setPointSize() или setPointSizeF().
См. также pixelSize().
Устанавливает размер шрифта в pointSize. Размер должен быть больше нуля.
См. также pointSize() и setPointSizeF().
Устанавливает размер шрифта в pointSize. Размер должет быть больше нуля. Требуемая точность размера не может быть установлена на всех платформах.
См. также pointSizeF(), setPointSize() и setPixelSize().
Если enable равно true, то режим прямого поиска включается; в противном случае выключается. Данная функция оказывает влияние на работу только в X11.
Если режим прямого поиска включен, Qt в X будет искать шрифт с названием, соответствующим названия семейсва шрифтов, игнорируя все значения, заданные для QFont. Если такое название соответствует нескольким шрифтам, Qt будет использовать первый шрифт, возвращаемый X. QFontInfo не может использоваться для получения информации об использовании прямого режима поиска QFont (он возвращает значение, установленные для всех параметров QFont включая имя семейства).
Предупреждение: Не используйте режим прямого поиска, если Вы действительно не нуждаетесь в этом! В большинстве (если не во всех) случаях, setRawName() - это лучший выбор.
См. также rawMode() и setRawName().
Устанавливает для шрифта данного семейства специальное прямое имя. Данная функция особенно полезна в X, где системные установки шрифтов (например X-ресурсы) обычно доступны только в форме XLFD (X Логическое Описание Шрифта). Вы можете передать XLFD как name в данную функцию.
Установленный с помощью setRawName() шрифт продолжает поддерживаться QFont. От может быть проверен (например, с помощью italic()) или изменен (например, с помощью setItalic()) и поэтому хорошо подходит для отображения форматированного текста.
Если внутренняя база шрифтов Qt не может позволить прямое название шрифта, то шрифт обретает прямое название name такое-же как название семейства.
Обратите внимание, что существующая реализация данной функции плохо работает с групповыми символами XLFD, а псевдинимы шрифтов (файл fonts.alias в директории шрифтов X11) не поддерживаются.
См. также rawName(), setRawMode() и setFamily().
Устанавливае фактор растяжения шрифта.
Фактор растяжения изменяет ширину всех символов шрифта на factor процентов. Например, factor равный 150 приводит к увеличению ширины всех символов шрифта в 1.5 раз (т.е. 150%). По умолчанию фактор растяжения равен 100. Минимальный фактор растяжения - 1, а максимальный - 4000.
Фактор растяжения применяется только для контурных шрифтов. Фактор растяжения игнорируется шрифтами, основанными на битовых картах.
Обратите внимание: QFont не может растягивать XLFD-шрифты. Когда XLFD-шрифты загружаются в X11, фактор растяжения не согласуется с предопределенными значениями SETWIDTH_NAME field в XLFD.
См. также stretch() и QFont::Stretch.
Если enable равно true, включается перечеркивание; в противном случае перечеркивание отключается.
См. также strikeOut() и QFontInfo.
Устанавливает стиль шрифта в style.
См. также style(), italic() и QFontInfo.
Устанавливает предпочтения стиля и стратегию в hint и strategy, соответственно.
Если они явно не установлены, то предпочтения стиля будут равны AnyStyle, а стратегия - PreferDefault.
Qt не поддерживает предпочтения стиля в X11, так как эта информация не предоставляется оконной системой.
См. также StyleHint, styleHint(), StyleStrategy, styleStrategy() и QFontInfo.
Устанавливает стратегию стиля в s.
См. также styleStrategy() и QFont::StyleStrategy.
Если enable равно true, то включается нижнее подчеркивание; в противном случае нижнее подчеркивание отключается.
См. также underline() и QFontInfo.
Устанавливает толщину шрифта в weight, которое может быть значением перечисления QFont::Weight.
См. также weight() и QFontInfo.
Возвращает фактор растяжения шрифта.
См. также setStretch().
Если перечеркивание включено, то возвращает true; в противном случае возвращает false.
См. также setStrikeOut().
Возвращает стиль шрифта.
См. также setStyle().
Возвращает StyleHint.
Предпочтения стиля относятся к алгоритму соответствия шрифтов. Для получения списка доступных предпочтений см. QFont::StyleHint.
См. также setStyleHint(), QFont::StyleStrategy и QFontInfo::styleHint().
Возвращает StyleStrategy.
Стратегия стиля относятся к алгоритму поиска соответствующего шрифта. Для получения списка доступных предпочтений см. QFont::StyleHint.
См. также setStyleStrategy(), setStyleHint() и QFont::StyleHint.
Возвращает первое семейство шрифтов, которое используется всякий раз, когда требуется семейство familyName и оно не найдено. Название семейства нечуствительно к регистру.
Если нет никакой замены для familyName, то возвращается familyName.
Для получения полного списка замен используйте substitutes().
См. также setFamily(), insertSubstitutions(), insertSubstitution() и removeSubstitution().
Возвращает список имен семейств шрифтов, используемых для замены семейства familyName. Имя семейства нечуствительно к регистру.
Если не установлена замена для семейства familyName, то возвращается пустой список.
См. также substitute(), insertSubstitutions(), insertSubstitution() и removeSubstitution().
Возвращает сортированный список замен имен семейств шрифтов.
См. также insertSubstitution(), removeSubstitution() и substitute().
Возвращает описание шрифта. Описание шрифта - это разделенный запятыми список атрибутов подходящий для использования в QSettings.
См. также fromString().
Возвращает true если было включено нижнее подчеркивание; в противном случае возвращает false.
См. также setUnderline().
Возвращает толщину шрифта, которая может являться одним из значений перечисления QFont::Weight.
См. также setWeight(), Weight и QFontInfo.
Возвращает шрифт как QVariant.
Возвращает true если данный шрифт отличен от f; в противном случае возвращает false.
Два объекта QFont считалются различными, если различны их атрибуты. Если для обоих шрифтов доступно rawMode(), то сравниваются только их семейства.
См. также operator==().
Обеспечивает произвольное сравнение данного шрифта со шрифтом f. Гарантируется лишь возвращение false если шрифты эквивалентны и что (f1 < f2) == !(f2 < f1) если шрифты не эквивалентны.
Иногда эта функция полезна. Например, если Вы хотите использовать объекты QFont в качестве ключей в QMap.
См. также operator==(), operator!=() и isCopyOf().
Присваивает значение font данному шрифту и возвращает ссылку на данный шрифт.
Возвращает true если данный шрифт эквивалентен f; в противном случае возвращает false.
Два объекта QFont считаются эквивалентными, если эквивалентны их атрибуты. Если для обоих шрифтов доступно rawMode(), то сравниваются только их семейства.
См. также operator!=() и isCopyOf().
Записывает шрифт font в поток данных s. (toString() записывает в текстовый поток.)
См также Формат операторов QDataStream.
Читает шрифт font из потока данных s. (fromString() читает из текстового потока.)
См. также Формат операторов QDataStream.
Copyright © 2005 Trolltech | Trademarks | Qt 4.1.0 |