Описание класса QPenКласс QPen определяет, как должен QPainter рисовать линии и контуры фигур. Далее... #include <QPen>
Открытые функции
Связанные нечлены класса
Подробное описаниеКласс QPen определяет, как должен QPainter рисовать линии и контуры фигур. Перо имеет style(), width(), brush(), capStyle() и joinStyle(). Стиль пера определяет тип линии. Кисть используют для заполнения областей, созданных с помощью пера. Используйте класс QBrush для определения стилей заполнения. Стиль окончаний (cap style) определяет, как QPainter будет отрисовывать окончание линии, в то время как стиль соединения определяет, как линии соединяются при отрисовке. Толщина пера может быть установлена и как целое число (width()), и как вещественное число (widthF()). Линия с толщиной ноль определяет косметическое (cosmetic) перо. Это означает, что толщина пера всегда равна одному пикселю, независимо от установок трансформации рисовальщика (painter). Различные параметры могут быть легко изменены с помощью функций setStyle(), setWidth(), setBrush(), setCapStyle() и setJoinStyle() (помните, что перо рисовальщика должно быть сброшено при установке других свойств пера). Например: QPainter painter(this); QPen pen(Qt::green, 3, Qt::DashDotLine, Qt::RoundCap, Qt::RoundJoin); painter.setPen(pen); что эквивалентно QPainter painter(this); QPen pen; // создаёт перо по умолчанию pen.setStyle(Qt::DashDotLine); pen.setWidth(3); pen.setBrush(Qt::green); pen.setCapStyle(Qt::RoundCap); pen.setJoinStyle(Qt::RoundJoin); painter.setPen(pen); По умолчанию перо является сплошным чёрным с толщиной 0, имеет прямоугольный стиль окончания (Qt::SquareCap), и тип соединений напрямую (Qt::BevelJoin). В добавок к этому, QPen предоставляет вспомогательные функции color() и setColor() для получения и установки цвета кисти пера. Перья можно сравнивать и использовать как потоки. Для получения дополнительной информации о матрице преобразований смотрите документацию по Система рисования. Стиль пераQt обеспечивает несколько встроенных стилей, представленных в перечислении Qt::PenStyle:
Просто используйте функцию setStyle() для перевода стиля пера в один из встроенных стилей, за исключением Qt::CustomDashLine, к описанию которого мы вернёмся позже. Установка стиля в Qt::NoPen приводит к тому, что не рисуются ни линии, ни контуры. По умолчанию стиль установлен в Qt::SolidLine. Начиная с Qt 4.1 также возможно определить свой шаблон штрихов линии, используя функцию setDashPattern(), которая также неявно переводит стиль пера в Qt::CustomDashLine. Аргумент-шаблон, QVector, должен определять, как каждое из вхождений qreal образуют шаблон, часть из них являются штрихом (вхождения 1, 3, 5...), другая - просветом (вхождения 2, 4, 6...). Например, ниже показан пример создания шаблона: QPen pen; QVector<qreal> dashes; qreal space = 4; dashes << 1 << space << 3 << space << 9 << space << 27 << space << 9 << space; pen.setDashPattern(dashes); Помните, что шаблон линии определяется в единицах толщины пера, например, штрих длиной 5 единиц при толщине линии 10 пикселей имеет длину 50 пикселей. Текущий шаблон линий может быть доступен с помощью функции dashPattern(). Используйте функцию isSolid() для определения, является ли линия, которую рисует перо, сплошной. Стиль окончанийСтиль окончаний определяет, как будут отрисовываться окончания линий, используя QPainter. Стиль окончаний применяется только при толщине 1 или более. Перечисление Qt::PenCapStyle представляет следующие стили:
Стиль Qt::SquareCap определяет квадратное окончание и закрывает конечную точку другой линии на половину от ширины. Стиль Qt::FlatCap определяет квадратное окончание и не закрывает конечную точку другой линии. А Qt::RoundCap определяет скруглённое окончание. По умолчанию стоит Qt::SquareCap. Отображается или нет конечная точка, когда толщина 0 или 1, зависит от стиля окончания. При использовании Qt::SquareCap или Qt::RoundCap, окончания отрисовываются, а при использовании Qt::FlatCap - нет. Стиль соединенийСтиль соединений определяет, как будет происходить соединение двух линий, используя QPainter. Стиль соединений применяется только при толщине 1 или более. Перечисление Qt::PenJoinStyle представляет следующие стили:
Стиль Qt::BevelJoin определяет, что линии будут соединяться напрямую. Стиль Qt::MiterJoin расширяет линии до пересечения под углом. А стиль Qt::RoundJoin соединяет линии дугой, вписанной в угол между линиями. По умолчанию используется Qt::BevelJoin. Когда применяется стиль Qt::MiterJoin, можно использовать setMiterLimit() для определения, насколько скруглённое соединение может быть отдалено от точки соединения. miterLimit() используется для уменьшения искажений, когда линии почти параллельны. miterLimit() должен быть определён в единицах толщины пера, то есть при его значении 5 единиц и толщине 10 единиц получится 50 пикселей. Значение предела митры по умолчанию равно 2 единицам, т.е. удвоенной толщине пера в пикселях.
Смотрите также QPainter, QBrush, Демонстрационная программа "Path Stroking" и Пример "Scribble". Описание функций-членовQPen::QPen ()Создает стандартное сплошное черное перо с толщиной равной 0. QPen::QPen ( Qt::PenStyle style )Создает черное перо с толщиной равной 0 и стилем style. Смотрите также setStyle(). QPen::QPen ( const QColor & color )Создает перо с цветом color и толщиной равной 0. Смотрите также setBrush() и setColor(). QPen::QPen ( const QBrush & brush, qreal width, Qt::PenStyle style = Qt::SolidLine, Qt::PenCapStyle cap = Qt::SquareCap, Qt::PenJoinStyle join = Qt::BevelJoin )Создает перо с заданной кистью brush, толщиной width, стилем пера style, стилем окончаний cap и стилем соединения join style. Смотрите также setBrush(), setWidth(), setStyle(), setCapStyle() и setJoinStyle(). QPen::QPen ( const QPen & pen )Создает перо, являющееся копией pen. QPen::~QPen ()Уничтожает перо. QBrush QPen::brush () constВозвращает кисть, используемую для заполнения областей, созданных данным пером. Смотрите также setBrush(). Qt::PenCapStyle QPen::capStyle () constВозвращает стиль окончаний пера. Смотрите также setCapStyle() и Стиль окончаний. QColor QPen::color () constВозвращает цвет кисти пера. Смотрите также brush() и setColor(). qreal QPen::dashOffset () constВозвращает смещение штриха для пера. Смотрите также setDashOffset(). QVector<qreal> QPen::dashPattern () constВозвращает образец штриха данного пера. Смотрите также setDashPattern(), style() и isSolid(). bool QPen::isCosmetic () constВозвращает true, если перо является косметическим; в противном случае возвращает false. Косметическое перо используется для рисования областей, которые должны иметь постоянную ширину при любых трансформациях, применяемых к QPainter, к которому относятся эти области. Рисование фигур косметическим пером позволяет быть уверенным, что их контурная линия не будет зависеть от масштабирующих воздействий. Нулевая толщина пера по умолчанию показывает, что перо является косметическим; перо с ненулевым значением толщины косметическим не является. Смотрите также setCosmetic() и widthF(). bool QPen::isSolid () constВозвращает true, если перо имеет непрерывное заполнение, иначе возвращается false. Смотрите также style() и dashPattern(). Qt::PenJoinStyle QPen::joinStyle () constВозвращает стиль соединений пера. Смотрите также setJoinStyle() и Стиль соединений. qreal QPen::miterLimit () constВозвращает предел митры пера. Предел митры пера уместен только в том случае, если стиль соединений линий пера установлен в Qt::MiterJoin. Смотрите также setMiterLimit() и Стиль соединений. void QPen::setBrush ( const QBrush & brush )Устанавливает кисть, используемую пером для заполнения форм, в brush. Смотрите также brush() и setColor(). void QPen::setCapStyle ( Qt::PenCapStyle style )Устанавливает стиль окончаний пера в style. Значение по умолчанию - Qt::SquareCap. Смотрите также capStyle() и Стиль окончаний. void QPen::setColor ( const QColor & color )Устанавливает цвет пера в color. Смотрите также setBrush() и color(). void QPen::setCosmetic ( bool cosmetic )Устанавливает, является ли перо косметическим, в зависимости от значения cosmetic. Смотрите также isCosmetic(). void QPen::setDashOffset ( qreal offset )Устанавливает смещение штрихов (начальная точка шаблона штрихов) для этого пера равным указанному offset. Смещение измеряется в единицах, используемых для задания шаблона штрихов.
Замечание: Это неявно преобразует стиль пера в Qt::CustomDashLine. Смотрите также dashOffset(). void QPen::setDashPattern ( const QVector<qreal> & pattern )Устанавливает стиль линии пера в pattern. Это также устанавливает стиль пера в Qt::CustomDashLine. Шаблон должен быть задан чётным числом положительных значений, где значения с номерами 1, 3, 5... - это длины штрихов, а с номерами 2, 4, 6... длины пропусков. Например:
Образец линии пера задается в единицах толщины пера; например, штрих длиной в 5 единиц при толщине линии 10 пикселей имеет длину 50 пикселей. Обратите внимание на то, что перо с нулевой толщиной эквивалентно косметическому перу с толщиной равной 1 пикселю. Каждый из штрихов подчинен стилям окончания, так что штрих длиной в 1 пиксель при квадратных окончаниях линий будет растянут на 0.5 пикселей в каждом из направлений и в результате длина штриха будет равна 2 пикселям. Помните, что по умолчанию стиль окончаний линии равен Qt::SquareCap, это означает, что линия завершается прямоугольно и закрывает конечную точку и расширяется на половину от ширины. Смотрите также setStyle(), dashPattern(), setCapStyle() и setCosmetic(). void QPen::setJoinStyle ( Qt::PenJoinStyle style )Устанавливает стиль соединений пера в style. Значение по умолчанию - Qt::BevelJoin. Смотрите также joinStyle() и Стиль соединений. void QPen::setMiterLimit ( qreal limit )Устанавливает предел митры пера в limit. Предел митры указывает, как далеко может простираться митра от точки соединения линий. Он используется для уменьшения закрашиваемой области между соединяющимися линиями в случаях, когда линии почти параллельны. Имеет значение только тогда, когда стиль пера установлен в Qt::MiterJoin. Значение задается в единицах толщины пера, то есть при его значении 5 единиц и толщине 10 получится 50 пикселей. Значение предела митры по умолчанию равно 2 единицам, т.е. удвоенной толщине пера в пикселях. Смотрите также miterLimit(), setJoinStyle() и Стиль соединений. void QPen::setStyle ( Qt::PenStyle style )Устанавливает стиль пера в style. Для получения списка всех стилей пера смотрите описание Qt::PenStyle. С Qt 4.1 также возможно определить свой шаблон штрихов линии, используя функцию setDashPattern(), которая также переводит стиль пера в Qt::CustomDashLine. Замечание: Эта функция сбрасывает значение смещения штриха в нуль. Смотрите также style() и Стиль пера. void QPen::setWidth ( int width )Устанавливает толщину пера width в пикселях с точностью до целого числа. Линия с толщиной ноль определяет косметическое (cosmetic) перо. Это означает, что толщина пера всегда равна одному пикселю, независимо от установок трансформации рисовальщика (painter). Установка толщины пера в отрицательные значения не поддерживается. Смотрите также setWidthF() и width(). void QPen::setWidthF ( qreal width )Устанавливает толщину пера равной width в пикселях с помощью числа с плавающей точкой. Линия с толщиной ноль определяет косметическое (cosmetic) перо. Это означает, что толщина пера всегда равна одному пикселю, независимо от установок трансформации рисовальщика (painter). Установка толщины пера в отрицательные значения не поддерживается. Смотрите также setWidth() и widthF(). Qt::PenStyle QPen::style () constВозвращает стиль пера. Смотрите также setStyle() и Стиль пера. void QPen::swap ( QPen & other )Меняет кисть other с этой кистью. Эта операция очень быстрая и не может завершиться ошибкой. Эта функция была введена в Qt 4.8. int QPen::width () constВозвращает толщину пера в виде целого числа. Смотрите также setWidth() и widthF(). qreal QPen::widthF () constВозвращает толщину пера в виде числа с плавающей точкой. Смотрите также setWidthF() и width(). QPen::operator QVariant () constВозвращает перо как QVariant. bool QPen::operator!= ( const QPen & pen ) constВозвращает true, если данное перо отлично от пера pen; в противном случае возвращает false. Два пера различны, если они имеют разные стили, ширину или цвет. Смотрите также operator==(). QPen & QPen::operator= ( const QPen & pen )Присваивает значение пера pen данному перу и возвращает ссылку на данное перо. bool QPen::operator== ( const QPen & pen ) constВозвращает true, если данное перо эквивалентно pen; в противном случае возвращает false. Два пера одинаковы, если они имеют эквивалентные стили, ширину и цвет. Смотрите также operator!=(). Связанные нечлены классаQDataStream & operator<< ( QDataStream & stream, const QPen & pen )Записывает перо pen в поток stream и возвращает ссылку на поток stream. Смотрите также Преобразование типов данных Qt в последовательный вид. QDataStream & operator>> ( QDataStream & stream, QPen & pen )Читает из потока stream в перо pen и возвращает ссылку на поток stream. Смотрите также Преобразование типов данных Qt в последовательный вид. |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |