Home · All Classes · Main Classes · Grouped Classes · Modules · Functions

Описание Класса QPainter
[модуль QtGui]

Класс QPainter выполняет низкоуровневое рисование на виджетах и других устройствах рисования. Далее...

#include <QPainter>

Наследуется Q3Painter и QStylePainter.

Открытые Типы

Открытые Функции

Статические Открытые Члены

Связанные Не-Члены


Подробное Описание

Класс QPainter (живописец) выполняет низкоуровневое рисование на виджетах и других устройствах рисования.

Живописец содержит высокооптимизированные функции позволяющие выполнять большинство рисунков требуемых программами с GUI. QPainter может рисовать все от простых линий до сложных форм подобных секторам круга и хордам. Так-же он может рисовать выровненный текст и пиксельные рисунки. Обычно он рисует в "нормальной" системе координат, но может делать рисунки и в других координатах.

Обычное использование живописца это:

Обычный способ использования QPainter - внутри обработчика сообщения рисовния. Простой пример:

    void SimpleExampleWidget::paintEvent()
    {
        QPainter paint(this);
        paint.setPen(Qt::blue);
        paint.drawText(rect(), Qt::AlignCenter, "The Text");
    }

Если Вам необходимо рисовать сложную фигуру, особенно если это необходимо делать неоднократно, то есть смысл создать QPainterPath и рисовать его используя drawPath().

Этот класс легок в управлении и есть множество установок, которыми Вы можете пользоваться:

Обратите внимание, что некоторые настройки являются отражениями настроек устройств рисования, например, QWidget::font(). QPainter::begin() (или конструктор QPainter) копирует эти атрибуты от устройства рисования. Вызов, например, QWidget::setFont() не будет оказзывать никакого воздействия до того, как живописец не начнет рисовать в следующий раз.

save() сохраняет все эти настройки во внутреннем стеке, restore() восстанавливает их назад.

Основная функциональная возможность QPainter это рисование, и он имеет множество функций для рисования примитивов: drawPoint(), drawPoints(), drawLine(), drawRect(), drawRoundRect(), drawEllipse(), drawArc(), drawPie(), drawChord(), drawLineSegments(), drawPolyline(), drawPolygon(), drawConvexPolygon() и drawCubicBezier(). Все эти функции имеют версии с аргументами как целого типа, так и с плавающей точкой.

Также есть функции для рисования на пиксельных картах/рисунках, а именно drawPixmap(), drawImage() и drawTiledPixmap(). И drawPixmap() и drawImage() приводят к одному результату за исключением того, что drawPixmap() быстрее работает на экране, а drawImage() может быть быстрее на QPrinter или других устройствах.

Текст рисуется с помощью drawText(). Если Вы нуждаетесь в точном расположении, то boundingRect() сообщит Вам, где данный drawText() выполнил бы рисование.

Есть функция drawPicture() которая рисует все содержимое QPicture используя этого живописца. drawPicture() - это единственная функция, которая игнорирует установки живописца, так как QPicture имеет собственные установки.

Обычно QPainter работает на системе координат устройства (обычно пиксели), но QPainter хорошо поддерживает преобразования координат. Для получения более подробной информации см. Система Координат, там-же есть простые примеры.

Наиболее часто используемые функции scale(), rotate(), translate() и shear(), все они работают с matrix(). setMatrix() может добавить что-либо к текущей matrix() или заменить ее.

setViewport() устанавливает прямоугольник, на котором работет QPainter. По умолчанию это все устройство. setWindow() устанавливает систему координат, то есть прямоугольную сетку к viewport(). Которая указывает внутри window() точки расположенные в viewport(). По window() то-же самое, что и viewport().

QPainter может обрезать любую операцию рисования по границе прямоугольника, области или векторного пути. Управление текущими границами обрезания может осуществляться с помощью функций clipRegion() и clipPath(). Предопочтительность (по скорости) использования векторного контура или области зависит от используемого paintEngine(). Например, для устройство рисования QImage предпочтительнее контуры, а для устройства рисования X11 предпочтительнее области. Установка границ обрезания производится в логических координатах живописца.

После обрезания QPainter устройсво рисованию также может обрезать. Например, большинство границ обрезания виджетов вне границ обрезания дочерних виджетов, а большинство границ обрезания принтеров находятся далеко от областей обрезания виджетов около границ бумеги. Эти дополнительные границы обрезания не отражаются в значении, возвращаемом clipRegion() или hasClipping().

isActive() указывает является-ли живописец активным. begin() (или конструктор) активизирует его. end() (и деструктор) деактивизирует. Если живописец активен, то device() возвращает устройство рисования, на котором живописец рисует.

Иногда желательно заставить еще кого-то рисовать на нестрандартном QPaintDevice. QPainter поддерживает статическую функцию, делающую это: setRedirected().

Внимание: Если у виджета не установлен признак Qt::WA_PaintOutsidePaintEvent, то QPainter может использоваться только внутри обработчика сообщений paintEvent() или функции, вызываемой paintEvent(). В Mac OS X можно рисовать на виджете только внутри обработчика paintEvent() независимо от настроек виджета.

См. также QPaintDevice, QWidget, QPixmap, QPrinter, QPicture, QPaintEngine и The Coordinate System.


Описание Типов Членов

enum QPainter::CompositionMode

Определяет операцию совмещения Porter-Duff. Режим совмещения используется для того, чтобы определить, как будут взаимодействовать пиксели источника и приемника.

Наиболее часто используется SourceOver (применяемый только как альфа-смешивание), при этом пиксель источника смешивается с пикселем приемника в зависимости от альфа-компонента пикселя источника, который определяет его прозрачность.

Оператор Porter Duff будет работать только если устройство рисования - это QImage в формате Format_ARGB32_Premultiplied или Format_ARGB32, где premultiplied версия - это привелегированный формат.

Если режим совмещения установлен, то он применяется для всех операторов рисования, карандашей кистей, градиентов и пиксельных карт/рисунков.

КонстантаЗначениеОписание
QPainter::CompositionMode_SourceOver0Режим по умолчанию. Для смешивания пикселей на приемнике используется альфа-компонент источника.
QPainter::CompositionMode_DestinationOver1Для смешивания пикселей используется альфа-компонент приемника. Данный режим является инферсией режима CompositionMode_SourceOver.
QPainter::CompositionMode_Clear2Пиксели приемника полностью очищаются, то есть считаются полностью прозрачными, вне зависимости от источника.
QPainter::CompositionMode_Source3На выходе пиксели источника. (То есть обычное копирование, подобно SourceOver когда пиксели источника непрозрачны).
QPainter::CompositionMode_Destination4На выходе писели приемника. Означает, что смешивание не производит никаких действий. Данный режим является инверсией режима CompositionMode_Source.
QPainter::CompositionMode_SourceIn5На выходе пиксели источника, в которых альфа-компонента уменьшена на альфа-компоненту приемника.
QPainter::CompositionMode_DestinationIn6На выходе пиксели приемника, в которых альфа-компонента уменьшена на альфа-компоненту источника. Данный режим является инверсией режима CompositionMode_SourceIn.
QPainter::CompositionMode_SourceOut7На выходе пиксели источника, в которых альфа-компонента уменьшена на инверсию альфа-компоненты приемника.
QPainter::CompositionMode_DestinationOut8На выходе пиксели приемника, в которых альфа-компонента уменьшена на инверсию альфа-компоненты источнка. Данный режим является инверсией режима CompositionMode_SourceOut.
QPainter::CompositionMode_SourceAtop9Пиксели источника смешиваются с пикселями приемника, пиксели источка ложатся сверху, при этом альфа-компонента пикселей источника уменьшается на альфа-компоненту пикселей приемника.
QPainter::CompositionMode_DestinationAtop10Пикслеи применика смешиваются с пикслелями источника, пиксели приемника ложатся сверху, при этом альфа-компонента пикселей приемника уменьшается на альфа-компоненту источника. Данный режим является инверсией режима CompositionMode_SourceAtop.
QPainter::CompositionMode_Xor11Пиксели сточника, альфа-компонента которых уменьшена на инверсию альфа-компоненты пикслей приемника, сливаются с пикслеями приемника, альфа-компонента которых уменьшена на инверсию альфа-компоненты пикслей источника.

enum QPainter::RenderHint
flags QPainter::RenderHints

Предпочтения рисования используемые для определения флагов QPainter, которые может учитывать или не учитывать данный движок рисования.

КонстантаЗначениеОписание
QPainter::Antialiasing0x01Указывает, что движок, если это возможно, должен сглаживать грани примитивов.
QPainter::TextAntialiasing0x02Указывает, что движок, если это возможно, должен сглаживать текст.
QPainter::SmoothPixmapTransform0x04Указывает, что движок должен использовать алгоритм сглаживания (типа билинейного (bilinear)) при преобразованиях пиксельных карт.

Тип RenderHints - это typedef для QFlags<RenderHint>. Он является комбинацией ИЛИ значений RenderHint.


Описание Функций-Членов

QPainter::QPainter ()

Создает живописца.

Обратите внимение на то, что все настройки живописца (setPen, setBrush и т.д.) сбрасываются на значения по умолчанию при вызове begin().

См. также begin() и end().

QPainter::QPainter ( QPaintDevice * pd )

Создает живописца и немедленно начинает процесс рисования на устройстве pd.

Данный конструктор удобен для создания живописцев с коротким сроком жизни, например в обработчике сообщения рисования и используется только один раз. Конструктор вызывает begin() за Вас, а деструктор QPainter автоматически вызывает end().

Пример использования begin() и end():

    void MyWidget::paintEvent(QPaintEvent *)
    {
        QPainter p;
        p.begin(this);
        p.drawLine(...);        // код рисования
        p.end();
    }

Пример использования данного конструктора:

    void MyWidget::paintEvent(QPaintEvent *)
    {
        QPainter p(this);
        p.drawLine(...);        // код рисования
    }

Так как конструктор не может сообщить о неудаче при инициализации живописца, то при рисовании на внешних устройствах (например, принтерах) Вам лучше реже использовать этот конструктор, а чаще прибегать к begin() и end().

См. также begin() и end().

QPainter::~QPainter ()

Разрушает живописца.

const QBrush & QPainter::background () const

Возвращает текущую кисть фона.

См. также setBackground() и QBrush.

Qt::BGMode QPainter::backgroundMode () const

Возвращает текущий режим фона.

См. также setBackgroundMode() и Qt::BGMode.

bool QPainter::begin ( QPaintDevice * pd )

Начинает процесс рисования на устройстве pd и в случае удачи возвращает true; в случае неудачи возвращает false.

Примеры возникновения ошибок при попытке начала процесса рисования:

    p->begin(0); // невозможно - устройство рисования не должно быть 0

    QPixmap pm(0, 0);
    p->begin(&pm); // невозможно - pm.isNull();

    p->begin(myWidget);
    p2->begin(myWidget); // невозможно - в одно время у виджета может быть только один живописец

Обратите внимание, что в большинстве случаев вы можете использовать что-то одно: либо данный конструктор, либо begin(), а end() будет выполнен автоматически в деструкторе.

Внимание: В один момент времени на устройстве рисования можно рисовать только одним живописцем.

См. также end().

QRectF QPainter::boundingRect ( const QRectF & rect, int flags, const QString & str )

Возвращает прямоугольник, ограничивающий выровненный текст, который был-бы напечатан при передаче в функцию drawText() строки str. Рисование, а следовательно и ограничивающий прямоугольник, ограничего прямоугольником rect, или прямоугольником, требуемым, для рисования большего текста.

Аргумент flags является побитовым ИЛИ следующих флагов:

ФлагЗначение
Qt::AlignLeftвыравнивание по левому краю или по правому краю при использовании языков с написанием справа-налево.
Qt::AlignRightвыравнивание по правому краю или по левому краю при использовании языков с написанием справа-налево.
Qt::AlignHCenterгоризонтальное выравнивание по центру.
Qt::AlignTopвыравнивание по верхнему краю.
Qt::AlignBottomвыравнивание по нижнему краю.
Qt::AlignVCenterвертикальное выравнивание по центру.
Qt::AlignCenter(== Qt::AlignHCenter | Qt::AlignVCenter).
Qt::TextSingleLineсимволы переноса строки в тексте игнорируются.
Qt::TextExpandTabsпропуски расширяются.
Qt::TextShowMnemonic"&x" интерпретируется как x.
Qt::TextWordWrapпри заполнении прямоугольника текст обрывается.

Значение по умолчанию выравнивания Qt::Horizontal - это Qt::AlignLeft, а для вертикального выравнивания - Qt::AlignTop.

Если установлено несколько флагов горизонтального выравнивания или несколько флаго вертикального выравнивания, то результирующее выравнивание не определено.

См. также Qt::TextFlag.

QRectF QPainter::boundingRect ( const QRectF & rectangle, const QString & text, const QTextOption & option = QTextOption() )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Возвращает прямоугольник, ограничивающий полученный текст text размещенный внутри прямоугольника rectangle. option могут использоваться для управления размещением и ориентацией текста.

QRect QPainter::boundingRect ( int x, int y, int w, int h, int flags, const QString & text )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Возвращает прямоугольник, ограничивающий полученный текст text, размещенный внутри прямоугольника, начинающегося в точке (x, y) с шириной w и высотой h.

QRect QPainter::boundingRect ( const QRect & rect, int flags, const QString & str )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Возвращает ограничивающий прямоугольник, расположенный внутри прямоугольника rect.

const QBrush & QPainter::brush () const

Возвращает текущую кисть живописца.

См. также QPainter::setBrush().

QPoint QPainter::brushOrigin () const

Возвращает текущее расположение кисти.

См. также setBrushOrigin().

QPainterPath QPainter::clipPath () const

Возвращает текущий контур обрезания. Обратите внимание, что путь обрезания дается в логических координатах и является субъектом преобразования координат.

См. также setClipPath(), setClipRegion(), setClipRect() и setClipping().

QRegion QPainter::clipRegion () const

Возвращает текущую область обрезания. обратите внимание, что область обрезания дается в логических координатах и является субъектом преобразований координат.

См. также setClipRegion(), setClipRect(), setClipPath() и setClipping().

CompositionMode QPainter::compositionMode () const

Возвращает текущий режим совмещения.

См. также QPainter::CompositionMode и setCompositionMode().

QPaintDevice * QPainter::device () const

Возвращает устройство рисования, на котором живописец рисует в данный момент или 0 если живописец не активен.

См. также QPaintDevice::paintingActive().

const QMatrix & QPainter::deviceMatrix () const

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

Данная функция необходима ТОЛЬКО при использовании команд платформы не делающей подобных преобразований.

См. также matrix() и QPaintEngine::hasFeature().

void QPainter::drawArc ( const QRectF & r, int a, int alen )

Рисует дугу заданную прямоугольником r, начальным углом a и длиной дуги alen.

Углы a и alen задаются в 1/16-той градуса, т.е. полный круг эквивалентен 5760 (16*360). Положительные значения a и alen обозначают отсчет против часовой стрелки, а отрицательные - по часовой стрелке. Ноль располагается в позиции трех часов.

Пример:

    QPainter painter(this);
    painter.drawArc(10, 10, 70, 100, 100 * 16, 160 * 16); // рисует дугу "("

An arc

См. также drawPie() и drawChord().

void QPainter::drawArc ( const QRect & r, int startAngle, int spanAngle )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует дугу соответствующую прямоугольнику r, с полученными startAngle и spanAngle.

void QPainter::drawArc ( int x, int y, int w, int h, int startAngle, int spanAngle )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует дугу соответствующую прямоугольнику (x, y, w, h), с полученными startAngle и spanAngle.

void QPainter::drawChord ( const QRectF & r, int a, int alen )

Рисует хорду заданную прямоугольником r, начальным углом a и длиной дуги alen.

Хорда заполняется текущей кистью brush().

Углы a и alen задаются в 1/16-той градуса, т.е. полный круг эквивалентен 5760 (16*360). Положительные значения a и alen обозначают отсчет против часовой стрелки, а отрицательные - по часовой стрелке. Ноль располагается в позиции трех часов.

    QPainter painter(this);
    painter.drawChord(10, 10, 70, 100, 50 * 16, 150 * 16);

A chord

См. также drawArc() и drawPie().

void QPainter::drawChord ( const QRect & r, int startAngle, int spanAngle )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует хорду соответствующую прямоугольнику r с полученными startAngle и spanAngle.

void QPainter::drawChord ( int x, int y, int w, int h, int startAngle, int spanAngle )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует хорду соответствующую прямоугольнику (x, y, w, h) с полученными startAngle и spanAngle.

void QPainter::drawConvexPolygon ( const QPointF * points, int pointCount )

Рисует выпуклый многоугольник заданный первыми pointCount точками из массива points с использованием текущих кисти и пера.

Если полученный многоугольник не выпуклый, то результат не определен.

На некоторых платформах (например, X11), рисование выпуклых многоугольников может быть быстрее, чем drawPolygon().

См. также drawPolygon().

void QPainter::drawConvexPolygon ( const QPoint * points, int pointCount )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует выпуклый многоугольник, заданный первыми pointCount точками из массива points с использованием текущих кисти и пера.

Если полученный многоугольник не выпуклый, то результат не определен.

На некоторых платформах (например, X11), рисование выпуклых многоугольников может быть быстрее, чем drawPolygon().

См. также drawPolygon().

void QPainter::drawConvexPolygon ( const QPolygonF & polygon )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует выпуклый многоугольник, заданный с помощью polygon с использованием текущих кисти и пера.

void QPainter::drawConvexPolygon ( const QPolygon & polygon )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует выпуклый многоугольник, заданный с помощью polygon с использованием текущих кисти и пера.

void QPainter::drawEllipse ( const QRectF & r )

Рисует эллипс, заданный прямоугольником r.

Заливка эллипса имеет размер равный r.size(). Граница эллипса имеер размер равный r.size() плюс толщина пера.

    QPainter painter(this);
    painter.drawEllipse(10, 10, 70, 100);

An ellipse

void QPainter::drawEllipse ( const QRect & r )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует эллипс, заданный прямоугольником r.

void QPainter::drawEllipse ( int x, int y, int w, int h )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует эллипс, заданный прямоугольником (x, y, w, h).

void QPainter::drawImage ( const QRectF & targetRect, const QImage & image, const QRectF & sourceRect, Qt::ImageConversionFlags flags = Qt::AutoColor )

Рисует прямоугольную часть sourceRect рисунка image в прямоугольник targetRect устройства рисования.

Если изображение должно быть изменено для помещения на устройство рисования с более низким разрешением (например, должно конвертироваться из 32-бит в 8-бит), используйте флаги flags для указания того, как это должно быть сделано.

См. также drawPixmap().

void QPainter::drawImage ( const QPointF & p, const QImage & image, const QRectF & sr, Qt::ImageConversionFlags flags = Qt::AutoColor )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует прямоугольную часть sr рисунка image в точке p устройства рисования.

Если изображение должно быть изменено для помещения на устройство рисования с более низким разрешением (например, должно конвертироваться из 32-бит в 8-бит), используйте флаги flags для указания того, как это должно быть сделано.

См. также drawPixmap().

void QPainter::drawImage ( const QRectF & rectangle, const QImage & image )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует рисунок image в прямоугольник rectangle.

См. также drawPixmap().

void QPainter::drawImage ( const QPoint & p, const QImage & image )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует рисунок image в точке p.

См. также drawPixmap().

void QPainter::drawImage ( const QPointF & p, const QImage & image )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует рисунок image в точке p.

См. также drawPixmap().

void QPainter::drawImage ( const QPoint & p, const QImage & image, const QRect & sr, Qt::ImageConversionFlags flags = Qt::AutoColor )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует прямоугольник sr рисунка image в точке p.

См. также drawPixmap().

void QPainter::drawImage ( const QRect & rectangle, const QImage & image )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует рисунок image в прямоугольник rectangle.

См. также drawPixmap().

void QPainter::drawImage ( int x, int y, const QImage & image, int sx = 0, int sy = 0, int sw = -1, int sh = -1, Qt::ImageConversionFlags flags = Qt::AutoColor )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует в точке (x, y) копию части рисунка image.

(x, y) определяют верхнюю-левую точку устройства рисования из которой должно начаться рисования. (sx, sy) определяют верхнюю-левую точку части рисунка image которая должна быть нарисована. Значение по умолчанию (0, 0).

(sw, sh) определяют размер части рисунка, которая должна быть нарисована. По умолчанию (-1, -1) обозначает, что выводится вся нижняя-правая часть рисунка.

См. также drawPixmap().

void QPainter::drawImage ( const QRect & targetRect, const QImage & image, const QRect & sourceRect, Qt::ImageConversionFlags flags = Qt::AutoColor )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

void QPainter::drawLine ( const QLineF & line )

Рисует линию, заданную с помощью line.

См. также pen().

void QPainter::drawLine ( int x1, int y1, int x2, int y2 )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует линию от точки (x1, y1) к точке (x2, y2) и устанавливает перо в позицию (x2, y2).

void QPainter::drawLine ( const QPoint & p1, const QPoint & p2 )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует линию от точки p1 к точке p2.

void QPainter::drawLine ( const QPointF & p1, const QPointF & p2 )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует линию от точки p1 к точке p2.

void QPainter::drawLine ( const QLine & line )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

См. также pen().

void QPainter::drawLines ( const QLineF * lines, int lineCount )

Используя текущее перо рисует lineCount линий из массива lines.

void QPainter::drawLines ( const QVector<QLineF> & lines )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущие кисть и перо рисует набор линий, заданный списком lines.

void QPainter::drawLines ( const QLine * lines, int lineCount )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущее перо рисует lineCount линий из массива lines.

void QPainter::drawLines ( const QVector<QLine> & lines )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущие кисть и перо рисует набор линий, заданный списком lines.

void QPainter::drawLines ( const QVector<QPoint> & pointPairs )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущие кисть и перо рисует набор линий, заданный списком pointPairs.

void QPainter::drawLines ( const QVector<QPointF> & pointPairs )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущее перо рисует линию для каждой пары точек из вектора pointPairs.

Если вектор содержит нечетное количество точек, то последняя точка будет проигнорирована.

void QPainter::drawLines ( const QPointF * pointPairs, int lineCount )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущее перо рисует первые lineCount линий из массива pointPairs.

Линии задаются парами точек, так что число элементов массива pointPairs должно быть не меньше, чем lineCount * 2.

См. также drawLines().

void QPainter::drawLines ( const QPoint * pointPairs, int lineCount )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущее перо рисует первые lineCount линий массива pointPairs.

Линии задаются парами точек, так что число элементов массива pointPairs должно быть не меньше, чем lineCount * 2.

См. также drawLines().

void QPainter::drawPath ( const QPainterPath & path )

Рисует фигуру, заданный с помощью path. Текущее перо использует для отображения контура, а текущую кисть использует для заливки.

void QPainter::drawPicture ( const QPointF & p, const QPicture & picture )

Отображает рисунок picture в точке p.

Если p = QPoint(0, 0), то данная функция делает то-же самое, что и QPicture::play().

void QPainter::drawPicture ( int x, int y, const QPicture & picture )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Отображает рисунок picture в точке (x, y).

void QPainter::drawPicture ( const QPoint & p, const QPicture & picture )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Отображает рисунок picture в точке p.

void QPainter::drawPie ( const QRectF & r, int a, int alen )

Рисует сектор круга, заданный с помощью прямоугольника r, начального угла a и длины дуги alen.

Для заливки сектора используется текущая кисть brush().

Углы a и alen задаются в 1/16-той градуса, т.е. полный круг эквивалентен 5760 (16*360). Положительные значения a и alen обозначают отсчет против часовой стрелки, а отрицательные - по часовой стрелке. Ноль располагается в позиции трех часов.

    QPainter painter(this);
    painter.drawPie(10, 10, 70, 100, 50 * 16, 100 * 16);

A pie

См. также drawArc() и drawChord().

void QPainter::drawPie ( const QRect & rect, int startAngle, int spanAngle )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует сектор круга, заданный с помощью прямоугольника rect и переданных углов startAngle и spanAngle.

void QPainter::drawPie ( int x, int y, int w, int h, int startAngle, int spanAngle )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует сектор круга, заданный с помощью прямоугольника (x, y, w, h) и переданных углов startAngle и spanAngle.

void QPainter::drawPixmap ( const QRectF & r, const QPixmap & pm, const QRectF & sr )

Рисует на устройстве рисования прямоугольную часть sr пиксельной карты pm внутри прямоугольника r.

См. также drawImage().

void QPainter::drawPixmap ( const QRect & targetRect, const QPixmap & pixmap, const QRect & sourceRect )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует прямоугольную часть sourceRect пиксельной карты pixmap внутри прямоугольника targetRect.

См. также drawImage().

void QPainter::drawPixmap ( const QPointF & p, const QPixmap & pixmap, const QRectF & sourceRect )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует прямоугольную часть sourceRect пиксельной карты pixmap в точке p.

См. также drawImage().

void QPainter::drawPixmap ( const QPointF & p, const QPixmap & pixmap )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует пиксельную карту pixmap в точке p.

См. также drawImage().

void QPainter::drawPixmap ( int x, int y, const QPixmap & pixmap )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует преданную pixmap в позиции (x, y).

См. также drawImage().

void QPainter::drawPixmap ( int x, int y, int width, int height, const QPixmap & pixmap )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует pixmap в прямоугольнике с координатами (x, y), шириной width и высотой height.

См. также drawImage().

void QPainter::drawPixmap ( int x, int y, int w, int h, const QPixmap & pm, int sx, int sy, int sw, int sh )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует прямоугольную часть с координатами (sx, sy), шириной sw и высотой sh пиксельной карты pm в точке (x, y), шириной w и высотой h.

См. также drawImage().

void QPainter::drawPixmap ( int x, int y, const QPixmap & pixmap, int sx, int sy, int sw, int sh )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует пиксельную карту в точке (x, y) с помощью копирования части pixmap на устройство рисования.

(x, y) задают верхний-левый угол области устройства рисования в которой будет выполняться рисование. (sx, sy) задают верхний-левый угол части pixmap которая будет рисоваться. Значения по умолчанию - (0, 0).

(sw, sh) задают размер области пикслельной карты, которая будет нарисована. Значение по умолчанию (-1, -1) обозначает, что будет отображена область пиксельной карты до правого-нижнего угла.

См. также QPixmap::setMask() и drawImage().

void QPainter::drawPixmap ( const QPoint & p, const QPixmap & pm, const QRect & sr )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует прямоугольник sr пиксельной карты pm в позиции p.

См. также drawImage().

void QPainter::drawPixmap ( const QPoint & p, const QPixmap & pm )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует пиксельную карту pm в позиции p.

См. также drawImage().

void QPainter::drawPixmap ( const QRect & r, const QPixmap & pm )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует пиксельную карту pm в прямоугольнике r.

См. также drawImage().

void QPainter::drawPoint ( const QPointF & p )

Используя текущий цвет пера рисует одиночную точку в позиции p.

См. также QPen.

void QPainter::drawPoint ( const QPoint & p )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущий цвет пера рисует одиночную точку в позиции p.

См. также QPen.

void QPainter::drawPoint ( int x, int y )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует одиночную точку в позиции (x, y).

void QPainter::drawPoints ( const QPointF * points, int pointCount )

Используя текущий цвет пера рисует первые pointCount из массива points.

См. также QPen.

void QPainter::drawPoints ( const QPolygonF & points )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует точки многоугольника points.

void QPainter::drawPoints ( const QPoint * points, int pointCount )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущий цвет пера рисует первые pointCount из массива points.

См. также QPen.

void QPainter::drawPoints ( const QPolygon & points )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущий цвет пера рисует точки многоугольника points.

void QPainter::drawPolygon ( const QPointF * points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill )

Используя текущее перо и кисть рисует многоугольник, заданный первыми pointCount точек массива points.

Последняя точка связывается с первой.

Многоугольник закрашивается с помощью текущей кисти brush(). Если fillRule равно Qt::WindingFill, то многоугольник закрашивается с помощью алгоритма заполнения winding. Если fillRule равно Qt::OddEvenFill, то многоугольник закрашивается с помощью алгоритма заполнения odd-even. Для получения более детального описания правил заполнения см. Qt::FillRule.

См. также drawLines(), drawPolyline() и QPen.

void QPainter::drawPolygon ( const QPolygon & pa, Qt::FillRule fillRule = Qt::OddEvenFill )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует многоугольник, заданный точками массива pa, с использованием правила заполнения fillRule.

void QPainter::drawPolygon ( const QPolygonF & pa, Qt::FillRule fillRule = Qt::OddEvenFill )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует многоугольник, заданный точками массива pa, с использованием правила заполнения fillRule.

void QPainter::drawPolygon ( const QPoint * points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует многоугольник, заданный первыми pointCount точками массива points.

void QPainter::drawPolyline ( const QPointF * points, int pointCount )

Используя текущее перо рисует множество линий, заданное первыми pointCount точками из points.

См. также drawLines(), drawPolygon() и QPen.

void QPainter::drawPolyline ( const QPolygon & pa )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущее перо рисует множество линий, заданное с помощью pa.

void QPainter::drawPolyline ( const QPolygonF & pa )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущее перо рисует множество линий, заданное с помощью pa.

void QPainter::drawPolyline ( const QPoint * points, int pointCount )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущее перо рисует множество линий, заданное первыми pointCount точками массива points.

void QPainter::drawRect ( const QRectF & r )

Используя текущие перо и кисть рисует прямоугольник r.

Заполнение прямоугольника имеет размер, равный r.size(). Окантовка прямоугольника имеет размер, равный r.size() плюс толщина пера.

void QPainter::drawRect ( int x, int y, int w, int h )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует прямоугольник, имеющий верхний-левый угол в позиции (x, y), ширину w и высоту h.

void QPainter::drawRect ( const QRect & rect )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используе текущие перо и кисть рисует прямоугольник rect.

void QPainter::drawRects ( const QRectF * rects, int rectCount )

Используя текущие перо и кисть рисует первые rectCount прямоугольников из массива rects.

См. также drawRect().

void QPainter::drawRects ( const QVector<QRectF> & rectangles )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущие перо и кисть рисует прямоугольники, заданные с помощью rectangles.

void QPainter::drawRects ( const QRect * rects, int rectCount )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущие перо и кисть рисует первые rectCount прямоугольников из массива rects.

См. также drawRect().

void QPainter::drawRects ( const QVector<QRect> & rectangles )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя текущие перо и кисть рисует прямоугольника, заданные с помощью rectangles.

void QPainter::drawRoundRect ( const QRectF & r, int xRnd = 25, int yRnd = 25 )

Рисует прямоугольник r с закругленными углами.

Аргументы xRnd и yRnd определяют, как будут закруглены углы. 0 - это не закругленные углы, 99 - максимальное закругление.

Заполнение прямоугольника имеет размер, равный r.size(). Окантовка прямоугольника имеет размер r.size() плюс толщина пера.

См. также drawRect() и QPen.

void QPainter::drawRoundRect ( int x, int y, int w, int h, int xRnd = 25, int yRnd = 25 )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует прямоугольник x, y, w, h с закругленными углами.

void QPainter::drawRoundRect ( const QRect & r, int xRnd = 25, int yRnd = 25 )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует прямоугольник r с закругленными углами.

void QPainter::drawText ( const QPointF & p, const QString & str )

Рисует прямоугольник r с закругленными углами.

См. также Qt::LayoutDirection.

void QPainter::drawText ( const QRectF & rectangle, const QString & text, const QTextOption & option = QTextOption() )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует полученный text в прямоугольнике rectangle, с помощью option специфицируются положение и ориентация текста.

void QPainter::drawText ( int x, int y, const QString & text )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует полученный текст text в позиции (x, y) используя настройки компоновки текста живописца.

См. также layoutDirection() и setLayoutDirection().

void QPainter::drawText ( int x, int y, int w, int h, int flags, const QString & text, QRect * br = 0 )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует полученный текст text внутри прямоугольника с координатами (x, y), шириной w и высотой h. В флагах, переданных через параметр flags, выделяются флаги Qt::AlignmentFlag и Qt::TextFlag соединенные с помощью оператора ИЛИ. br (если не нулевой) устанавливается на прямоугольник фактически ограничивающий выведенный текст.

void QPainter::drawText ( const QRect & r, int flags, const QString & str, QRect * br = 0 )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует полученный текст text внутри прямоугольника r. В флагах, переданных через параметр flags, выделяются флаги Qt::AlignmentFlag и Qt::TextFlag соединенные с помощью оператора ИЛИ. br (если не нулевой) устанавливается на прямоугольник фактически ограничивающий выведенный текст.

void QPainter::drawText ( const QPoint & p, const QString & s )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует строку s в позиции p используя настройки компоновки живописца.

См. также layoutDirection() и setLayoutDirection().

void QPainter::drawText ( const QRectF & r, int flags, const QString & str, QRectF * br = 0 )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует строку str внутри прямоугольника r. Параметр flags представляет собой комбинацию флагов Qt::AlignmentFlag и Qt::TextFlag объединенных с помощью оператора ИЛИ. Если br не нулевой, то устанавливается на прямоугольник, фактически ограничивающий выведенный текст.

void QPainter::drawTiledPixmap ( int x, int y, int w, int h, const QPixmap & pixmap, int sx = 0, int sy = 0 )

Рисует мозайку pixmap в заданном прямоугольнике.

(x, y) определяют верхний-левый угол области устройства рисования на которой должно производиться отображение; ширина и высота области передаются через w и h. (sx, sy) определяют верхнюю-левую точку пиксельной карты pixmap которая должна быть нарисована; значения по умолчанию: (0, 0).

Вызов drawTiledPixmap() аналогичен нескольким вызовам drawPixmap() для заполнения (замощения) области пиксельной картой pixmap, но, в зависимости от оконной системы, может эффективнее.

См. также drawPixmap().

void QPainter::drawTiledPixmap ( const QRect & rect, const QPixmap & pixmap, const QPoint & sp = QPoint() )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует мозайку pixmap, внутри прямоугольника rect, начинающийся в точке sp.

void QPainter::drawTiledPixmap ( const QRectF & r, const QPixmap & pixmap, const QPointF & sp = QPointF() )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Рисует мозайку pixmap, внутри прямоугольника rect, начинающийся в точке sp.

bool QPainter::end ()

Заканчивает рисование. Все используемые для рисования ресурсы освобождаются. Обычно не необходимости в вызове данной функции, так как она вызывается неявно деструктором.

См. также begin() и isActive().

void QPainter::eraseRect ( const QRectF & r )

Стирает область внутри прямоугольника r. Эквивалентно fillRect(r, background()).

void QPainter::eraseRect ( const QRect & rect )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Стирает область внутри прямоугольника rect. Эквивалентно fillRect(rect, background()).

void QPainter::eraseRect ( int x, int y, int w, int h )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Стирает область внутри x, y, w, h. Эквивалентно fillRect(x, y, w, h, background()).

void QPainter::fillPath ( const QPainterPath & path, const QBrush & brush )

Используя полученную кисть brush заливает path. Контур не перерисовывается.

void QPainter::fillRect ( const QRectF & r, const QBrush & brush )

Используя brush заливает прямоугольник r.

Вы можете установить QColor как brush, будет вызван конструктор QBrush принимающий аргумент QColor и создана жесткая монохромная кисть.

См. также drawRect().

void QPainter::fillRect ( const QRect & rect, const QBrush & brush )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя brush заливает прямоугольник rect.

Вы можете установить QColor как brush, будет вызван конструктор QBrush принимающий аргумент QColor и создана жесткая монохромная кисть.

См. также drawRect().

void QPainter::fillRect ( int x, int y, int w, int h, const QBrush & brush )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Используя brush заливает прямоугольник (x, y, w, h).

Вы можете установить QColor как brush, будет вызван конструктор QBrush принимающий аргумент QColor и создана жесткая монохромная кисть.

См. также drawRect().

const QFont & QPainter::font () const

Возвращает текущие установки шрифта живописца.

См. также setFont() и QFont.

QFontInfo QPainter::fontInfo () const

Если живописец активен, то вовзращает информацию о шрифте живописца. Если живописец не активен, то возвращаемое значение не определено.

См. также fontMetrics() и isActive().

QFontMetrics QPainter::fontMetrics () const

Если живописец активен, то возвращает метрики шрифта живописца. Если живописец не активен, то возвращаемое значение не определено.

См. также fontInfo() и isActive().

bool QPainter::hasClipping () const

Возвращает true если было установлено обрезание; в противном случае возвращает false.

См. также setClipping().

void QPainter::initFrom ( const QWidget * widget )

Инициализирует перо, фон и шрифт живописца по образцу виджета widget. Вызываться должно после begin() пока живописец активен.

bool QPainter::isActive () const

Возвращает true если живописец активен, т.е. begin() был вызван, а end() еще не был вызван; в противном случае возвращает false.

См. также QPaintDevice::paintingActive().

Qt::LayoutDirection QPainter::layoutDirection () const

Возвращает установки компоновки используемые для отображения текста живописцем.

См. также setLayoutDirection().

const QMatrix & QPainter::matrix () const

Возвращает матрицу трансформаций.

См. также setMatrix().

bool QPainter::matrixEnabled () const

Возвращает true если доступна матрица трансформаций; в противном случае возвращает false.

См. также setMatrixEnabled() и setMatrix().

QPaintEngine * QPainter::paintEngine () const

Если живописец активен, то возвращает движок рисования, используемый живописцем в данный момент, в противном случае возвращает 0.

const QPen & QPainter::pen () const

Возвращает текущее перо живописца.

См. также setPen().

RenderHints QPainter::renderHints () const

Возвращает флаги, определяющие предпочтения рисования установленные для данного живописца.

void QPainter::resetMatrix ()

Сбрасывает все трансформации, которые могут быть выполнены с помощью translate(), scale(), shear(), rotate(), setMatrix(), setViewport() и setWindow().

См. также matrix() и setMatrix().

void QPainter::restore ()

Восстанавливает текущее состояние живописца (извлекает сохраненное ранее состояние из стека).

См. также save().

void QPainter::rotate ( qreal a )

Вращает систему координат на a градусов по часовой стрелке.

См. также translate(), scale(), shear(), resetXForm(), setMatrix() и xForm().

void QPainter::save ()

Сохраняет текущее состояние живописца (помещает состояние в стек). save() должно сопровождаться соответствующим restore(). end() освобождает стек.

См. также restore().

void QPainter::scale ( qreal sx, qreal sy )

Масштабирует систему координат на (sx, sy).

См. также translate(), shear(), rotate(), resetXForm(), setMatrix() и xForm().

void QPainter::setBackground ( const QBrush & bg )

Устанавливает кисть фона в bg.

Кисть фона - это кисть, которая используется для рисования заливки при отображении непрозрачного текста, разделительное пространство и битовых карт. Кисть фона не имеет никакого значения при установке режима прозрачного фона (значение по умолчанию).

См. также background(), setBackgroundMode() и Qt::BGMode.

void QPainter::setBackgroundMode ( Qt::BGMode mode )

Устанавливает режим фона живописца в mode, который может иметь значение Qt::TransparentMode (по умолчанию) или Qt::OpaqueMode.

В прозрачном режиме разделительное пространство и текст отображаются без соответствующих пикселей фона. При прозрачном режиме это пространство заполняется текущим цветом фона.

Обратите внимание: если Вы хотите рисовать прозрачную битовую или пиксельную карту, нужно использовать QPixmap::setMask().

См. также backgroundMode() и setBackground().

void QPainter::setBrush ( Qt::BrushStyle style )

Устанавливате текущую кисть живописца в черный цвет и специфицирует ее с помощью style.

См. также brush() и QBrush.

void QPainter::setBrush ( const QBrush & brush )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Устанавливает кисть живописца в brush.

The brush defines how shapes are filled.

См. также brush().

void QPainter::setBrushOrigin ( const QPointF & p )

Устанавливает кисть в позицию p.

Одноцветная кисть установлена в точку с координатами (0, 0). Данная настройки применяется только для кисти образца или пиксельной карты.

См. также brushOrigin().

void QPainter::setBrushOrigin ( const QPoint & p )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Устанавливает кисть в позицию p.

void QPainter::setBrushOrigin ( int x, int y )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Устанавливает кисть в позицию (x, y).

void QPainter::setClipPath ( const QPainterPath & path, Qt::ClipOperation op = Qt::ReplaceClip )

Устанавливает линию обрезки в path с операцией обрезки op.

Линия обрезки задается в логических координатах (живописца).

См. также clipPath(), setClipRect(), setClipRegion() и setClipping().

void QPainter::setClipRect ( const QRect & rect, Qt::ClipOperation op = Qt::ReplaceClip )

Устанавливает область обрезки в прямоугольник rect используя операцию обрезки op. По умолчанию операция заменяет текущий прямоугольник обрезки.

См. также clipRect(), setClipRegion(), setClipPath() и setClipping().

void QPainter::setClipRect ( int x, int y, int w, int h, Qt::ClipOperation op = Qt::ReplaceClip )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Устанавливает область обрезки в прямоугольник x, y, w, h и делает доступной обрезку.

См. также clipRect(), setClipRegion(), setClipPath() и setClipping().

void QPainter::setClipRect ( const QRectF & rect, Qt::ClipOperation op = Qt::ReplaceClip )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Устанавливает область обрезки в прямоугольник rect.

void QPainter::setClipRegion ( const QRegion & r, Qt::ClipOperation op = Qt::ReplaceClip )

Устанавливает область обрезки в r с использованием операции обрезки op. По умолчанию данное действие должно заменить текущую область обрезки.

Обратите внимание: область обрезки задается в логических координатах и является субъектом трансформаций координат.

См. также clipRegion(), setClipRect(), setClipPath() и setClipping().

void QPainter::setClipping ( bool enable )

Если enable равно true, делает обрезку доступной; если enable равно false, делает обрезку недоступной.

См. также hasClipping(), setClipRect(), setClipRegion() и setClipPath().

void QPainter::setCompositionMode ( CompositionMode mode )

Устанавливает режим совмещения в mode.

Внимание: Вы можете устанавливать режим совмещения только для объектов QPainter, работающих с QImage.

См. также compositionMode(), QPainter::CompositionMode и QPaintEngine::PaintEngineFeature.

void QPainter::setFont ( const QFont & font )

Устанавливает шрифт живописца в font.

Установленный шрифт используется в последующих вызовах функции drawText(). Цвет текста тот-же, что и цвет пера.

Если Вы устанавливаете недоступный шрифт, то Qt находит ближайшее соответствие. font() возвратит тот шрифт, который передан в setFont(), а fontInfo() возвращает фактически используемый шрифт (который может быть тем-же самым).

См. также font() и drawText().

void QPainter::setLayoutDirection ( Qt::LayoutDirection direction )

Устанавливает настройки компоновки используемые при рисовании текстом живописца в direction.

См. также layoutDirection().

void QPainter::setMatrix ( const QMatrix & matrix, bool combine = false )

Устанавливает матрицу трансформаций в matrix и делает трансформации доступными.

Если combine равно true, то matrix совмещается с текущей матрицей транформаций; в противном случае matrix заменяет текущую матрицу трансформаций.

Если matrix - это матрица идентичности и combine равно false, то функция вызывает setMatrixEnabled(false). (Матрица идентичности - это матрица для которой QMatrix::m11() и QMatrix::m22() равны 1.0, а остальные равны 0.0.)

Трансформации применяются после трансформации формы (т.е. window и viewport).

Следующие функции могут трансформировать систему координат без использования QMatrix:

Они работают над worldMatrix() живописца и реализованы подобно следующему коду:

    void QPainter::rotate(qreal a)
    {
        QMatrix m;
        m.rotate(a);
        setMatrix(m, true);
    }

Обратите внимание, что всегда нужно иметь combine равным true когда Вы рисуете на QPicture. Иначе может быть невозможно отобразить изображение с преобразованиями. Использование translate(), scale() и т.д. более безопасно.

Для получения краткого обзора преобразований системы координат см. Обзор Системы Координат.

См. также matrix(), setMatrixEnabled() и QMatrix.

void QPainter::setMatrixEnabled ( bool enable )

Делает преобразования доступными, если enable равно true, или недоступными, если enable равно false. Матрица преобразований при этом не изменяется.

См. также matrixEnabled(), setMatrix() и matrix().

void QPainter::setPen ( const QPen & pen )

Устанавливает новое перо живописца.

Перо pen определяет, как будут рисоваться линии и окантовки, а также цвет текста.

См. также pen().

void QPainter::setPen ( const QColor & color )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Устанавливает стиль пера живописца в Qt::SolidLine, толщину в 0, а цвет в color.

См. также pen() и QPen.

void QPainter::setPen ( Qt::PenStyle style )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Устанавливает стиль пера живописца в style, толщину в 0, а цвет в черный.

См. также pen() и QPen.

void QPainter::setRedirected ( const QPaintDevice * device, QPaintDevice * replacement, const QPoint & offset = QPoint() )   [static]

Переадресует все команды рисования для устройства рисования device другому устройству рисования replacement. Дополнительная опция offset определяет смещение внутри этого устройства. После рисования необходимо вызвать restoreRedirected().

Вообще, вероятно Вы найдете вызов QPixmap::grabWidget() или QPixmap::grabWindow() белее легким решением.

См. также redirected().

void QPainter::setRenderHint ( RenderHint hint, bool on = true )

Если on равно true, устанавливает предпочтения при рисовании для данного живописца в hint; в противном случае очищает предпочтения при рисовании.

void QPainter::setViewTransformEnabled ( bool enable )

Делает доступными преобразования изображение, если enable равно true, или недоступными, если enable равно false.

См. также viewTransformEnabled(), setWindow(), setViewport(), setMatrix() и setMatrixEnabled().

void QPainter::setViewport ( int x, int y, int w, int h )

Устанавливает прямоугольник вывода трансформаций изображения для живописца и делает доступными преобразования вида.

Прямоугольник вывода является частью трансформации вида. Прямоугольник вывода определяет систему координа устройства и задается x, y, шириной w и высотой h. Его напарник window() определяет логическую систему координат.

По умолчанию прямоугольник вывода соответствует прямоугольнику устройства. Для получения краткого обзора системы координат см. Обзор Системы Координат.

См. также viewport(), setWindow(), setViewTransformEnabled(), setMatrix() и setMatrixEnabled().

void QPainter::setViewport ( const QRect & r )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Устанавливает прямоугольник вывода живописца в r.

void QPainter::setWindow ( int x, int y, int w, int h )

Устанавливает прямоугольник окна трансформаций вида для живописца и делает доступными трансформации вида.

Прямоугольник окна является частью трансформации вида. Окно определяет логическую систему координат и задается x, y, шириной w и высотой h. Его напарник viewport() определяет систему координат устройства.

По умолчанию прямоугольник окна соответствует прямоугольнику устройства. Для получения краткого обзора системы координат см. Обзор Системы Координат.

См. также window(), setViewport(), setViewTransformEnabled(), setMatrix() и setMatrixEnabled().

void QPainter::setWindow ( const QRect & r )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Устанавливает окно живописца в прямоугольник r.

void QPainter::shear ( qreal sh, qreal sv )

Ограничивает систему координат по (sh, sv).

См. также translate(), scale(), rotate(), resetXForm(), setMatrix() и xForm().

void QPainter::strokePath ( const QPainterPath & path, const QPen & pen )

Рисует контур пути path с настройками пера, установленными в pen.

void QPainter::translate ( const QPointF & offset )

Переводит начало системы координат в offset. После вызова данной функции offset добавляется к координатам точек.

Например, следующий код рисует одну и ту-же точку дважды:

    void MyWidget::paintEvent()
    {
        QPainter paint(this);

        paint.drawPoint(0, 0);

        paint.translate(100.0, 40.0);
        paint.drawPoint(-100, -40);
    }

См. также scale(), shear(), rotate(), resetXForm(), setMatrix() и xForm().

void QPainter::translate ( qreal dx, qreal dy )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Переводит начало системы координат на вектор (dx, dy).

void QPainter::translate ( const QPoint & offset )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Переводит начало системы координат в offset.

bool QPainter::viewTransformEnabled () const

Если трансформации вида доступны, возвращает true; в противном случае возвращает false.

См. также setViewTransformEnabled() и matrix().

QRect QPainter::viewport () const

Возвращает прямоугольник вывода.

См. также setViewport() и setViewTransformEnabled().

QRect QPainter::window () const

Возвращает прямоугольник окна.

См. также setWindow() и setViewTransformEnabled().


Связанные Не-Члены

void qDrawPlainRect ( QPainter * p, int x, int y, int w, int h, const QColor & c, int lineWidth = 1, const QBrush * fill = 0 )

Используя живописец p рисует простой прямоугольник, заданный с помощью (x, y, w, h).

Аргумент c задает цвет линий.

Аргумент lineWidth задает толщину линий.

Внутренность прямоугольника заполняется с помощью кисти fill, если fill не равно 0.

Если вместо этого Вам удобнее использовать виджет QFrame, то можете это сделать, заставив его нарисовать простой прямоугольник. Например, QFrame::setFrameStyle( QFrame::Box | QFrame::Plain).

Предупреждение: Данная функция не принимает в расчет QWidget::style() и QApplication::style()-> Для создания виджетов, соответствующих текущему стилю GUI используйте функции рисования QStyle.

См. также qDrawShadeRect() и QStyle::drawPrimitive().

void qDrawShadeLine ( QPainter * p, int x1, int y1, int x2, int y2, const QPalette & pal, bool sunken = true, int lineWidth = 1, int midLineWidth = 0 )

Используя текущего живописца p рисует горизонтальную (y1 == y2) или вертикальтую (x1 == x2) штриховую линию.

Ничего не будет нарисовано если y1 != y2 и x1 != x2 (т.е. линия не является ни вертикальной, ни горизонтальной).

Палитра pal определяет цвета штрихов (цвета light, dark и middle).

Линия отображается утопленной, если sunken равно true, или приподнятой, если sunken равно false.

Аргумент lineWidth определяет толщину каждой линии. Это не является общей толщиной линий.

Аргумент midLineWidth определяет толщину средней линии, рисуемой цветом QPalette::mid().

Если вместо этого Вам удобнее использовать виджет QFrame, то можете это сделать, заставлив его нарисовать штриховую линию. Например, QFrame::setFrameStyle( QFrame::HLine | QFrame::Sunken).

Предупреждение: Данная функция не принимает в расчет QWidget::style() и QApplication::style()-> Для создания виджетов, соответствующих текущему стилю GUI используйте функции рисования QStyle.

См. также qDrawShadeRect(), qDrawShadePanel() и QStyle::drawPrimitive().

void qDrawShadePanel ( QPainter * p, int x, int y, int w, int h, const QPalette & pal, bool sunken = false, int lineWidth = 1, const QBrush * fill = 0 )

Используя живописца p рисует штриховую панель, заданную с помощью (x, y, w, h).

Палитра pal определяет цвета штриховки (цвета light, dark и middle).

Панель отображается утопленной, если sunken равно true, или приподнятой, если sunken равно false.

Аргумент lineWidth определяет толщину линий.

Внутренность панели заполняется с помощью кисти fill, если fill не равно 0.

Если вместо этого Вам удобнее использовать виджет QFrame, то можете это сделать, заставив его нарисовать штриховую панель. Например, QFrame::setFrameStyle( QFrame::Panel | QFrame::Sunken).

Предупреждение: Данная функция не принимает в расчет QWidget::style() и QApplication::style()-> Для создания виджетов, соответствующих текущему стилю GUI используйте функции рисования QStyle.

См. также qDrawWinPanel(), qDrawShadeLine(), qDrawShadeRect() и QStyle::drawPrimitive().

void qDrawShadeRect ( QPainter * p, int x, int y, int w, int h, const QPalette & pal, bool sunken = false, int lineWidth = 1, int midLineWidth = 0, const QBrush * fill = 0 )

Используя живописца p рисует заштрихованный прямоугольник, заданный с помощью (x, y, w, h).

Палитра pal определяет цвета штриховки (цвета light, dark и middle).

Прямоугольник отображается утопленным, если sunken равно true, или приподнятым, если sunken равно false.

Аргумент lineWidth определяет толщину каждой линии. Это не является общей толщиной всех линий.

Аргумент midLineWidth определяет толщину средней линии, рисуемой цветом QPalette::mid().

Внутренность прямоугольника заполняется с помощью кисти fill, если fill не равно 0.

Если вместо этого Вам удобнее использовать виджет QFrame, то можете это сделать, заставив его нарисовать штриховой прямоугольник. Например, QFrame::setFrameStyle( QFrame::Box | QFrame::Raised).

Предупреждение: Данная функция не принимает в расчет QWidget::style() и QApplication::style()-> Для создания виджетов, соответствующих текущему стилю GUI используйте функции рисования QStyle.

См. также qDrawShadeLine(), qDrawShadePanel(), qDrawPlainRect(), QStyle::drawItemText(), QStyle::drawItemPixmap(), QStyle::drawControl() и QStyle::drawComplexControl().

void qDrawWinButton ( QPainter * p, int x, int y, int w, int h, const QPalette & pal, bool sunken = false, const QBrush * fill = 0 )

Используя живописца p рисует кнопку в стиле Windows, заданную с помощью (x, y, w, h).

Палитра pal определяет цвета (цвета light, dark и middle).

Кнопка отображается утопленной, если sunken равно true, или приподнятой, если sunken равно false.

Толщина линий равна 2 пикселям.

Внутренность кнопки заполняется с помощью кисти *fill, если fill не равно 0.

Предупреждение: Данная функция не принимает в расчет QWidget::style() и QApplication::style()-> Для создания виджетов, соответствующих текущему стилю GUI используйте функции рисования QStyle.

См. также qDrawWinPanel() и QStyle::drawControl().

void qDrawWinPanel ( QPainter * p, int x, int y, int w, int h, const QPalette & pal, bool sunken = false, const QBrush * fill = 0 )

Используя живописца p рисует панель в стиле Windows, заданную с помощью (x, y, w, h).

Палитра pal определяет цвета.

Панель отображается утопленной, если sunken равно true, или приподнятой, если sunken равно false.

Толщина линий равна 2 пикселям.

Внутренность панели заполняется с помощью кисти fill, если fill не равно 0.

Если вместо этого Вам удобнее использовать виджет QFrame, то можете это сделать, заставив его нарисовать панель. Например, QFrame::setFrameStyle( QFrame::WinPanel | QFrame::Raised).

Предупреждение: Данная функция не принимает в расчет QWidget::style() и QApplication::style()-> Для создания виджетов, соответствующих текущему стилю GUI используйте функции рисования QStyle.

См. также qDrawShadePanel(), qDrawWinButton() и QStyle::drawPrimitive().


Copyright © 2005 Trolltech Trademarks
Qt 4.1.0
Hosted by uCoz