Home · All Classes · Main Classes · Grouped Classes · Modules · Functions |
Класс QFontMetrics предоставляет информацию о метриках шрифта. Далее...
#include <QFontMetrics>
Класс QFontMetrics предоставляет информацию о метриках шрифта.
Функции QFontMetrics вычисляют размер символов и строк для заданного шрифта. Есть три пути, которыми можно создать объект QFontMetrics:
(Обратите внимание: Если Вы используете шрифт принтера, то возвращаемые значения могут быть неточны. Шрифты принтера не всегда доступны, поэтому, если заданный шрифт принтера не доступен, используется самый близкий экранный шрифт.)
После того, как объект создан, становятся доступны функции, имеющие доступ к индивидуальным метрикам шрифта, символам и строкам отображенным с его помощью.
Есть несколько функций, работающим со шрифтом: ascent(), descent(), height(), leading() и lineSpacing() возвращающие основные характеристики размеров шрифта. Функции underlinePos(), overlinePos(), strikeOutPos() и lineWidth() возвращают свойства линий, которые почеркивают, располагаются над символами или перечеркивают символы. Все эти функции достаточно быстры.
Есть также несколько функций, работающих с глифами шрифта: minLeftBearing(), minRightBearing() и maxWidth(). Они работают достаточно медленно и мы рекомендуем избегать их, если это возможно.
Для каждого символа можно получить width(), leftBearing() и rightBearing() и, используя inFont(), выяснить, входит ли он в шрифт. Вы также можете использовать символ как строку и вызывать для него строковые функции.
Строковые функции включают: width(), возвращающую ширину строки в пикселях (или в пунктах для принтера); boundingRect(), возвращающую прямоугольник, ограничивающий выведенную строку; size(), возвращающую размер этого прямоугольника.
Пример:
QFont font("times", 24); QFontMetrics fm(font); int pixelsWide = fm.width("What's the width of this text?"); int pixelsHigh = fm.height();
См. также QFont, QFontInfo и QFontDatabase.
Создает объект метрик шрифта для шрифта font.
Метрики шрифта будут совместимы с устройством рисования, используемым для создания шрифта font.
Объект метрик шрифта содержит информацию для шрифта, переданного в конструктор, и не обновляется, если параметры шрифта изменяются позже.
Используйте QFontMetrics(const QFont &, QPaintDevice *) для получения метрик шрифта, совместимого с нужным устройством рисования.
Создает объект метрик шрифта для шрифта font и устройства рисования paintdevice.
Метрики шрифта будут совместимы с переданным устройством рисования. Если paintdevice равно 0, то метрики будут совместимы с экраном, т.е. Вы получите метрики используемые для рисования на виджетах или пиксельных картах, а не на QPicture или QPrinter.
Объект метрик шрифта содержит информацию для шрифта, переданного в конструктор, и не обновляется, если параметры шрифта изменяются позже.
Создает копию fm.
Разрушает объект метрик шрифта и освобождает все занятые ресурсы.
Возвращает подъем шрифта.
Подъем шрифта - это расстояние от базовой линии до самой высокой точки символов шрифта. В действительности, некоторые разработчики шрифтов могут внести неправильлности в работу данной функции, например, когда они придают больше, чем одну верхнюю точку символу, или когда размещаю необычный символ на необычном языке, так что иногда (хотя и редко) возвращаемое значение может быть слишком маленьким.
См. также descent().
Возвращает прямоугольник, описывающий символ ch относительно самой левой точки основной линии.
Обратите внимание, что прямоугольник может находиться левее позиции (0, 0), например, для курсивных шрифтов, выводимый текст может закрывать все пиксели ограничивающего прямоугольника.
Обратите внимание, что прямоугольник, обычно, простирается и выше и ниже основной линии.
См. также width().
Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.
Возвращает прямоугольник, охватывающий символы строки str, если она отображена в позиции (0, 0).
Обратите внимание, что прямоугольник может находиться левее позиции (0, 0), например, для курсивных шрифтов, выводимый текст может закрывать все пиксели ограничивающего прямоугольника.
Символы новой строки обрабатываются как нормальные символы, а не как разрыва строки.
Из-за различной высоты символов, высоты прямоугольников, охватывающих, например, "Yes" и "yes" могут быть различны.
См. также width() и QPainter::boundingRect().
Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.
Возвращает прямоугольник, охватывающий переданную строку text внутри прямоугольника с координатами x и y, шириной width и высотой height.
Если flags установлен в Qt::TextExpandTabs, а tabarray не нулевой, то он определяет заканчивающуюся на ноль последовательность заданных в пикселях позиций табуляции; в противном случае, если tabstops не нулевой, то он используется как интервал табуляции (в пикселях).
Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.
Возвращает прямоугольник, охватывающий символы строки, заданной с помощью str, если она отображена в позиции (0, 0). Рисование строки и, следовательно, охватывающий прямоугольник ограничены прямоугольником r.
Аргумент flgs является побитовым ИЛИ значений следующий флагов:
По умолчанию, выравнивание Qt::Horizontal установлено в Qt::AlignLeft, а вертикальное выравнивание установлено в Qt::AlignTop.
Если установлено несколько горизонтальных или несколько вертикальных флагов выравнивания, то результат не определен.
Данные флаги определены в файле qnamespace.h.
Если flgs установлен в Qt::TextExpandTabs тогда, если tabarray не нулевой, то он определяет заканчивающуюся на ноль последовательность позиций табуляции (в пикслелсях); в противном случае, если tabstops не нулевой, то он используется как интервал табуляции (в пикселях).
Обратите внимание, что охватывающий прямоугольник может простираться налево от позиции (0, 0), например, для курсивных шрифтов, и выводимый текст может закрывать все пиксели охватывающего прямоугольника.
Символы новой строк обрабатывающия как разрывы строки.
Несмотря на различные фактические высоты символов, высоты охватывающих прямоугольников для "Yes" и "yes" одинаковы.
Охватывающий прямоугольник, возвращаемый данной функцией несколько больше, чем охватывающий прямоугольник, полученный с помощью простой функции boundingRect(). Данная функция использует максимально влево и вправо поведение шрифта, как необходмое для размещения многострочного текста. Также, раньше индивидуальных высот символов, для вычисления высоты используются значения fontHeight() и lineSpacing().
См. также width(), QPainter::boundingRect() и Qt::Alignment.
Возвращает ширину символа, стоящего в строке str в позиции pos.
Целая строка необходима, поскольку при рисовании, в некоторых языках (например, в Арабском), глиф может меняться в зависимости от контекста (символов стоящих перед и после нужного).
Данная функция также принимает во внимание не симольные знаки и связи.
Возвращает спуск шрифта.
Спуск шрифта - это расстояние от базовой линии до самой низкой точки символов шрифта. (Обратите внимание, что есть отлиция в работе на X, который добавляет один пиксель.) В действительности, некоторые разработчики шрифтов могут внести неправильлности в работу данной функции, например, когда они придают больше, чем одну нижнюю точку символу, или когда размещаю необычный символ на необычном языке, так что иногда (хотя и редко) возвращаемое значение может быть слишком маленьким.
См. также ascent().
Возвращает высоту шрифта.
Это значение всегда эквивалентно ascent()+descent()+1 (1 - базовая линия).
См. также leading() и lineSpacing().
Возвращает true если символ ch - действительный символ шрифта; в противном случае возвращает false.
Возвращает сдвиг шрифта, т.е. действительный межстройный интервал.
См. также height() и lineSpacing().
Возвращает левый сдвиг символа ch шрифта.
Левый сдвиг символа - это рассояние вправо от самого левого пикселя символа до логической позиции символа. Это значение отрицательно, если символ простирается только влево от своей логической позиции.
Графическое описание данной метрики см. width().
См. также rightBearing(), minLeftBearing() и width().
Возвращает расстояние между двумя соседними базовыми линиями.
Данное значение всегда эквивалентно leading()+height().
См. также height() и leading().
Возвращает толщину подчеркивающих и перечеркивающих линий, отрегулированную относительно размер шрифта.
См. также underlinePos(), overlinePos() и strikeOutPos().
Возвращает ширину самого широкого символа шрифта.
Возвращает минимальный сдвиг шрифта влево.
Это минимальный leftBearing(char) для всех символов шрифта.
Обратите внимание, что, если шрифт большой, эта функция может работать очень медленно
См. также minRightBearing() и leftBearing().
Возвращает минимальный сдвиг шрифта вправо.
Это минимальный rightBearing(char) для всех символов шрифта.
Обратите внимание, что, если шрифт большой, эта функция может работать очень медленно.
См. также minLeftBearing() и rightBearing().
Возвращает расстояние от базовой линии до места, где должна быть нарисована линия, расположенная над текстом.
См. также underlinePos(), strikeOutPos() и lineWidth().
Возвращает правый сдвиг символа ch шрифта.
Правый сдвиг символа - это рассояние влево от самого правого пикселя символа до логической позиции символа. Это значение отрицательно, если символ простирается только вправо от width() символа.
Графическое описание данной метрики см. width().
См. также leftBearing(), minRightBearing() и width().
Возвращает размер в пикселях строки text.
Аргумент flgs является побитовым ИЛИ значений следующих флагов:
Данные флаги определены в файле qnamespace.h.
Если flgs установлен в Qt::TextExpandTabs тогда, если tabarray не нулевой, то он определяет заканчивающуюся на ноль последовательность позиций табуляции (в пикслелсях); в противном случае, если tabstops не нулевой, то он используется как интервал табуляции (в пикселях).
Символы новой строки обрабатываются как символы разрыва строки.
Несмотря на различные фактические высоты символов, высоты охватывающих прямоугольников для "Yes" и "yes" одинаковы.
См. также boundingRect().
Возвращает расстояние от базовой линии до места, в котором должна рисоваться перечеркивающая линия.
См. также underlinePos(), overlinePos() и lineWidth().
Возвращает расстояние от базовой линии до места, в котором должна рисаваться подчеркивающая линия.
См. также overlinePos(), strikeOutPos() и lineWidth().
Возвращает ширину в пикселях первых len символов строки str. Если len отрицательно (по умолчанию), то возвращается ширина всей строки.
Обратите внимание, что это значение не равно boundingRect().width(); boundingRect() возвращает прямоугольник, охватывающий пиксели, которые закроет эта строка, а width() возвращает расстояние до позиции, в которой должна начаться новая строка.
См. также boundingRect().
Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.
Возвращает логическую ширину символа ch в пикселях. Это значение используется как расстояние до позиции, в которой отображется следующий за ch символ.
Некоторые из метрик показаны на рисунке справа. Центральный черный прямоугольник закрывает логическую ширину width() символа. Внешние светлые прямоугольники закрывают leftBearing() и rightBearing() символа. Заметьте, что правый и левый сдвиги для символа "f" в этом шрифте отрицательны, а для символа "o" положительны.
Предупреждение: Данная функция не корректно работает с Арабскими символами и непечатаемыми символами внутри строки, таких как метки рисования и позиционирования, которые, иногда, не могут быть учтены. Если Вы не ищете ширину изолированных символов, используйте вместо данной функции charWidth().
См. также boundingRect() и charWidth().
Возвращает 'x'-высоту шрифта. Часто, но не всегда, это значение равно высоте символа 'x'.
Возвращает true если объект метрик шрифта other не эквивалентен данному объекту; в противном случае возвращает false.
Два объекта метрик шрифта считаются эквивалентными, если они созданы для одного объекта QFont и устройства рисования, для которых они созданы, считаются совместимыми.
См. также operator==().
Присваивает данному объекту значение объекта метрик шрифта fm.
Возвращает true если объект метрик шрифта other эквивалентен данному объекту; в противном случае возварщает false.
Два объекта метрик шрифта считаются эквивалентными, если они созданы для одного объекта QFont и устройства рисования, для которых они созданы, считаются совместимыми.
См. также operator!=().
Copyright © 2005 Trolltech | Trademarks | Qt 4.1.0 |