Spec-Zone.ru › Qt 5.12

Класс QPainter

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

Заголовок: #include <QPainter>
qmake: QT += gui
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Примечание: Все функции в этом классе являются перевходными.

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

класс PixmapFragment
перечисление РежимКомпозиции { CompositionMode_SourceOver, CompositionMode_DestinationOver, CompositionMode_Clear, CompositionMode_Source, ..., RasterOp_SourceOrNotDestination }
перечисление ПодсказкаPixmapFragment { OpaqueHint }
флаги ПодсказкиPixmapFragment
перечисление ПараметрОтрисовки { Antialiasing, TextAntialiasing, SmoothPixmapTransform, HighQualityAntialiasing, NonCosmeticDefaultPen, Qt4CompatiblePainting }
флаги ПараметрыОтрисовки

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

QPainter()
QPainter(QPaintDevice *device)
~QPainter()
const QBrush & background() const
Qt::BGMode backgroundMode() const
bool begin(QPaintDevice *device)
void beginNativePainting()
QRectF boundingRect(const QRectF &rectangle, int flags, const QString &text)
QRect boundingRect(const QRect &rectangle, int flags, const QString &text)
QRect boundingRect(int x, int y, int w, int h, int flags, const QString &text)
QRectF boundingRect(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption())
const QBrush & brush() const
QPoint brushOrigin() const
QRectF clipBoundingRect() const
QPainterPath clipPath() const
QRegion clipRegion() const
QTransform combinedTransform() const
QPainter::CompositionMode compositionMode() const
QPaintDevice * device() const
const QTransform & deviceTransform() const
void drawArc(const QRectF &rectangle, int startAngle, int spanAngle)
void drawArc(const QRect &rectangle, int startAngle, int spanAngle)
void drawArc(int x, int y, int width, int height, int startAngle, int spanAngle)
void drawChord(const QRectF &rectangle, int startAngle, int spanAngle)
void drawChord(int x, int y, int width, int height, int startAngle, int spanAngle)
void drawChord(const QRect &rectangle, int startAngle, int spanAngle)
void drawConvexPolygon(const QPointF *points, int pointCount)
void drawConvexPolygon(const QPolygonF &polygon)
void drawConvexPolygon(const QPoint *points, int pointCount)
void drawConvexPolygon(const QPolygon &polygon)
void drawEllipse(const QRectF &rectangle)
void drawEllipse(const QRect &rectangle)
void drawEllipse(int x, int y, int width, int height)
void drawEllipse(const QPointF &center, qreal rx, qreal ry)
void drawEllipse(const QPoint &center, int rx, int ry)
void drawGlyphRun(const QPointF &position, const QGlyphRun &glyphs)
void drawImage(const QRectF &target, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
void drawImage(const QRect &target, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
void drawImage(const QPointF &point, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = ...)
void drawImage(const QPoint &point, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = ...)
void drawImage(const QRectF &rectangle, const QImage &image)
void drawImage(const QRect &rectangle, const QImage &image)
void drawImage(const QPointF &point, const QImage &image)
void drawImage(const QPoint &point, const QImage &image)
void 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)
void drawLine(const QLineF &line)
void drawLine(const QLine &line)
void drawLine(int x1, int y1, int x2, int y2)
void drawLine(const QPoint &p1, const QPoint &p2)
void drawLine(const QPointF &p1, const QPointF &p2)
void drawLines(const QLineF *lines, int lineCount)
void drawLines(const QVector<QLineF> &lines)
void drawLines(const QPointF *pointPairs, int lineCount)
void drawLines(const QVector<QPointF> &pointPairs)
void drawLines(const QLine *lines, int lineCount)
void drawLines(const QVector<QLine> &lines)
void drawLines(const QPoint *pointPairs, int lineCount)
void drawLines(const QVector<QPoint> &pointPairs)
void drawPath(const QPainterPath &path)
void drawPicture(const QPointF &point, const QPicture &picture)
void drawPicture(int x, int y, const QPicture &picture)
void drawPicture(const QPoint &point, const QPicture &picture)
void drawPie(const QRectF &rectangle, int startAngle, int spanAngle)
void drawPie(int x, int y, int width, int height, int startAngle, int spanAngle)
void drawPie(const QRect &rectangle, int startAngle, int spanAngle)
void drawPixmap(const QRectF &target, const QPixmap &pixmap, const QRectF &source)
void drawPixmap(const QRect &target, const QPixmap &pixmap, const QRect &source)
void drawPixmap(int x, int y, int w, int h, const QPixmap &pixmap, int sx, int sy, int sw, int sh)
void drawPixmap(int x, int y, const QPixmap &pixmap, int sx, int sy, int sw, int sh)
void drawPixmap(const QPointF &point, const QPixmap &pixmap, const QRectF &source)
void drawPixmap(const QPoint &point, const QPixmap &pixmap, const QRect &source)
void drawPixmap(const QPointF &point, const QPixmap &pixmap)
void drawPixmap(const QPoint &point, const QPixmap &pixmap)
void drawPixmap(int x, int y, const QPixmap &pixmap)
void drawPixmap(const QRect &rectangle, const QPixmap &pixmap)
void drawPixmap(int x, int y, int width, int height, const QPixmap &pixmap)
void drawPixmapFragments(const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap, QPainter::PixmapFragmentHints hints = ...)
void drawPoint(const QPointF &position)
void drawPoint(const QPoint &position)
void drawPoint(int x, int y)
void drawPoints(const QPointF *points, int pointCount)
void drawPoints(const QPolygonF &points)
void drawPoints(const QPoint *points, int pointCount)
void drawPoints(const QPolygon &points)
void drawPolygon(const QPointF *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill)
void drawPolygon(const QPolygonF &points, Qt::FillRule fillRule = Qt::OddEvenFill)
void drawPolygon(const QPoint *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill)
void drawPolygon(const QPolygon &points, Qt::FillRule fillRule = Qt::OddEvenFill)
void drawPolyline(const QPointF *points, int pointCount)
void drawPolyline(const QPolygonF &points)
void drawPolyline(const QPoint *points, int pointCount)
void drawPolyline(const QPolygon &points)
void drawRect(const QRectF &rectangle)
void drawRect(int x, int y, int width, int height)
void drawRect(const QRect &rectangle)
void drawRects(const QRectF *rectangles, int rectCount)
void drawRects(const QVector<QRectF> &rectangles)
void drawRects(const QRect *rectangles, int rectCount)
void drawRects(const QVector<QRect> &rectangles)
void drawRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)
void drawRoundedRect(int x, int y, int w, int h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = ...)
void drawRoundedRect(const QRect &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = ...)
void drawStaticText(const QPointF &topLeftPosition, const QStaticText &staticText)
void drawStaticText(const QPoint &topLeftPosition, const QStaticText &staticText)
void drawStaticText(int left, int top, const QStaticText &staticText)
void drawText(const QPointF &position, const QString &text)
void drawText(const QPoint &position, const QString &text)
void drawText(int x, int y, const QString &text)
void drawText(const QRectF &rectangle, int flags, const QString &text, QRectF *boundingRect = nullptr)
void drawText(const QRect &rectangle, int flags, const QString &text, QRect *boundingRect = nullptr)
void drawText(int x, int y, int width, int height, int flags, const QString &text, QRect *boundingRect = nullptr)
void drawText(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption())
void drawTiledPixmap(const QRectF &rectangle, const QPixmap &pixmap, const QPointF &position = QPointF())
void drawTiledPixmap(int x, int y, int width, int height, const QPixmap &pixmap, int sx = 0, int sy = 0)
void drawTiledPixmap(const QRect &rectangle, const QPixmap &pixmap, const QPoint &position = ...)
bool end()
void endNativePainting()
void eraseRect(const QRectF &rectangle)
void eraseRect(int x, int y, int width, int height)
void eraseRect(const QRect &rectangle)
void fillPath(const QPainterPath &path, const QBrush &brush)
void fillRect(const QRectF &rectangle, const QBrush &brush)
void fillRect(int x, int y, int width, int height, const QBrush &brush)
void fillRect(const QRect &rectangle, const QBrush &brush)
void fillRect(const QRectF &rectangle, const QColor &color)
void fillRect(int x, int y, int width, int height, const QColor &color)
void fillRect(const QRect &rectangle, const QColor &color)
void fillRect(int x, int y, int width, int height, Qt::GlobalColor color)
void fillRect(const QRect &rectangle, Qt::GlobalColor color)
void fillRect(const QRectF &rectangle, Qt::GlobalColor color)
void fillRect(int x, int y, int width, int height, Qt::BrushStyle style)
void fillRect(const QRect &rectangle, Qt::BrushStyle style)
void fillRect(const QRectF &rectangle, Qt::BrushStyle style)
void fillRect(int x, int y, int width, int height, QGradient::Preset preset)
void fillRect(const QRect &rectangle, QGradient::Preset preset)
void fillRect(const QRectF &rectangle, QGradient::Preset preset)
const QFont & font() const
QFontInfo fontInfo() const
QFontMetrics fontMetrics() const
bool hasClipping() const
bool isActive() const
Qt::LayoutDirection layoutDirection() const
qreal opacity() const
QPaintEngine * paintEngine() const
const QPen & pen() const
QPainter::RenderHints renderHints() const
void resetTransform()
void restore()
void rotate(qreal angle)
void save()
void scale(qreal sx, qreal sy)
void setBackground(const QBrush &brush)
void setBackgroundMode(Qt::BGMode mode)
void setBrush(const QBrush &brush)
void setBrush(Qt::BrushStyle style)
void setBrushOrigin(const QPointF &position)
void setBrushOrigin(const QPoint &position)
void setBrushOrigin(int x, int y)
void setClipPath(const QPainterPath &path, Qt::ClipOperation operation = Qt::ReplaceClip)
void setClipRect(const QRectF &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)
void setClipRect(const QRect &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)
void setClipRect(int x, int y, int width, int height, Qt::ClipOperation operation = Qt::ReplaceClip)
void setClipRegion(const QRegion &region, Qt::ClipOperation operation = Qt::ReplaceClip)
void setClipping(bool enable)
void setCompositionMode(QPainter::CompositionMode mode)
void setFont(const QFont &font)
void setLayoutDirection(Qt::LayoutDirection direction)
void setOpacity(qreal opacity)
void setPen(const QPen &pen)
void setPen(const QColor &color)
void setPen(Qt::PenStyle style)
void setRenderHint(QPainter::RenderHint hint, bool on = true)
void setRenderHints(QPainter::RenderHints hints, bool on = true)
void setTransform(const QTransform &transform, bool combine = false)
void setViewTransformEnabled(bool enable)
void setViewport(const QRect &rectangle)
void setViewport(int x, int y, int width, int height)
void setWindow(const QRect &rectangle)
void setWindow(int x, int y, int width, int height)
void setWorldMatrixEnabled(bool enable)
void setWorldTransform(const QTransform &matrix, bool combine = false)
void shear(qreal sh, qreal sv)
void strokePath(const QPainterPath &path, const QPen &pen)
bool testRenderHint(QPainter::RenderHint hint) const
const QTransform & transform() const
void translate(const QPointF &offset)
void translate(const QPoint &offset)
void translate(qreal dx, qreal dy)
bool viewTransformEnabled() const
QRect viewport() const
QRect window() const
bool worldMatrixEnabled() const
const QTransform & worldTransform() const

Статические публичные члены

const QMetaObject staticMetaObject

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

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

QPainter предоставляет высокооптимизированные функции для выполнения большинства операций рисования, необходимых для графических приложений. Он может рисовать всё, от простых линий до сложных фигур, таких как сектора и хорды. Он также может рисовать выровненный текст и пиксельмапы. Обычно он рисует в «естественной» системе координат, но также может выполнять преобразования вида и мира. QPainter может работать с любым объектом, который наследуется от QPaintDevice.

Типичное использование QPainter находится внутри события paint виджета: Создать и настроить (например, установить перо или кисть) painter. Затем нарисовать. Не забудьте уничтожить объект QPainter после отрисовки. Например:

void SimpleExampleWidget::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    painter.setPen(Qt::blue);
    painter.setFont(QFont("Arial", 30));
    painter.drawText(rect(), Qt::AlignCenter, "Qt");
}

Основной функциональностью QPainter является рисование, но класс также предоставляет несколько функций, которые позволяют настраивать настройки QPainter, качество рендеринга и другие, позволяющие выполнять обрезку. Кроме того, вы можете управлять тем, как различные фигуры объединяются, задавая режим композиции painter.

Функция isActive() указывает, активен ли painter. Painter активируется функцией begin() и конструктором, принимающим QPaintDevice. Функция end() и деструктор деактивируют его.

Вместе с классами QPaintDevice и QPaintEngine класс QPainter является основой для системы отрисовки Qt. QPainter — это класс, используемый для выполнения операций рисования. QPaintDevice представляет устройство, на которое можно нарисовать с помощью QPainter. QPaintEngine предоставляет интерфейс, который использует painter для рисования на разных типах устройств. Если painter активен, device() возвращает устройство отображения, на котором рисует painter, а paintEngine() возвращает движок отрисовки, на котором в данный момент работает painter. Для получения дополнительной информации см. Систему отрисовки.

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

Предупреждение: Когда устройством отображения является виджет, QPainter может использоваться только внутри функции paintEvent() или в функции, вызываемой paintEvent().

Настройки

Существует несколько настроек, которые вы можете настроить, чтобы сделать QPainter рисующим в соответствии с вашими предпочтениями:

  • font() — шрифт, используемый для рисования текста. Если отрисовщик isActive(), вы можете получить информацию о текущем шрифте и его метриках, используя функции fontInfo() и fontMetrics() соответственно.
  • brush() определяет цвет или узор, используемый для заполнения фигур.
  • pen() определяет цвет или штриховку, используемую для рисования линий или границ.
  • backgroundMode() определяет, есть ли background() или нет, то есть это либо Qt::OpaqueMode, либо Qt::TransparentMode.
  • background() применяется только тогда, когда backgroundMode() имеет значение Qt::OpaqueMode, а pen() — это штриховка. В этом случае он описывает цвет пикселей фона в штриховке.
  • brushOrigin() определяет начало узорчатых кистей, обычно начало фона виджета.
  • viewport(), window(), worldTransform() составляют систему координат преобразования отрисовщика. Дополнительную информацию см. в разделе Преобразования координат и документации Система координат.
  • hasClipping() указывает, применяет ли отрисовщик обрезку вообще. (Устройство отрисовки тоже применяет обрезку.) Если отрисовщик применяет обрезку, то он обрезает до clipRegion().
  • layoutDirection() определяет направление выравнивания, используемое отрисовщиком при рисовании текста.
  • worldMatrixEnabled() указывает, включено ли преобразование мира.
  • viewTransformEnabled() указывает, включено ли преобразование просмотра.

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

В любой момент вы можете сохранить состояние QPainter, вызвав функцию save(), которая сохранит все доступные настройки в внутреннем стеке. Функция restore() восстанавливает их обратно.

Отрисовка

QPainter предоставляет функции для рисования большинства примитивов: drawPoint(), drawPoints(), drawLine(), drawRect(), drawRoundedRect(), drawEllipse(), drawArc(), drawPie(), drawChord(), drawPolyline(), drawPolygon(), drawConvexPolygon() и drawCubicBezier(). Две удобные функции drawRects() и drawLines() рисуют заданное количество прямоугольников или линий в заданном массиве QRects или QLines с использованием текущей кисти и пера.

Класс QPainter также предоставляет функцию fillRect(), которая заполняет заданный QRect заданной QBrush, и функцию eraseRect(), которая стирает область внутри заданного прямоугольника.

Все эти функции имеют целочисленные и с плавающей точкой версии.

Пример базовой отрисовки

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

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

Пример траекторий рисования

Класс QPainterPath предоставляет контейнер для операций рисования, что позволяет создавать и повторно использовать графические фигуры.

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

QPainter также предоставляет функцию fillPath(), которая заполняет заданный QPainterPath заданной QBrush, и функцию strokePath(), которая рисует контур заданной траектории (т. е. обводит траекторию).

См. также пример Деформации векторов, который демонстрирует, как использовать продвинутые векторные методы для рисования текста с помощью QPainterPath, пример Градиенты, который показывает различные типы градиентов, доступных в Qt, и пример Очертания траекторий, который демонстрирует встроенные штриховки Qt и показывает, как можно использовать пользовательские узоры для расширения диапазона доступных узоров.

Деформации векторов Градиенты Очертания траекторий

Отрисовка текста выполняется с помощью функции drawText(). Когда вам нужна точная позиционирование, функция boundingRect() укажет, где будет нарисована команда drawText().

Рисование пиксельмапов и изображений

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

Существует функция drawPicture(), которая рисует содержимое целого QPicture. Функция drawPicture() игнорирует все настройки отрисовщика, так как QPicture имеет свои собственные настройки.

Рисование версий пиксельмапов и изображений с высоким разрешением

Версии пиксельмапов с высоким разрешением имеют значение отношения пикселей устройства, большее, чем 1 (см. QImageReader, QPixmap::devicePixelRatio()). Если оно совпадает со значением базового QPaintDevice, то оно рисуется непосредственно на устройстве без дополнительных преобразований.

Например, это случай, когда рисуется QPixmap размером 64x64 пикселя с соотношением пикселей устройства 2 на экране с высоким разрешением, у которого тоже соотношение пикселей устройства 2. Обратите внимание, что пиксельмап фактически имеет размер 32x32 пикселя в пространстве пользователя. Пути кода в Qt, которые вычисляют геометрию макета на основе размера пиксельмапа, будут использовать этот размер. Чистым результатом этого является то, что пиксельмап отображается как пиксельмап с высоким разрешением, а не как большой пиксельмап.

Качество рендеринга

Для получения оптимального результата рендеринга с помощью QPainter следует использовать независимый от платформы QImage как устройство отрисовки; т.е. использование QImage гарантирует, что результат имеет идентичное представление пикселей на любой платформе.

Класс QPainter также предоставляет средство управления качеством рендеринга через перечисление RenderHint и поддержку плавающей точки: все функции для рисования примитивов имеют версию с плавающей точкой. Они часто используются в сочетании с рендеринговым указанием QPainter::Antialiasing.

Пример концентрических окружностей

Пример Концентрических окружностей демонстрирует улучшенное качество рендеринга, которое можно получить с помощью точности с плавающей точкой и антиалиасинга при рисовании пользовательских виджетов.

Главное окно приложения отображает несколько виджетов, которые рисуются с различными сочетаниями точности и антиалиасинга.

Перечисление RenderHint задает флаги для QPainter, которые могут или не могут быть учтены любым движком. QPainter::Antialiasing указывает, что движок должен применять антиалиасинг к границам примитивов, если это возможно, QPainter::TextAntialiasing указывает, что движок должен применять антиалиасинг к тексту, если это возможно, и QPainter::SmoothPixmapTransform указывает, что движок должен использовать алгоритм плавного преобразования пиксельмапов.

Функция renderHints() возвращает флаг, определяющий настройки рендеринга, установленные для этого отрисовщика. Используйте функцию setRenderHint() для установки или сброса текущих RenderHints.

Преобразования координат

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

nop rotate() scale() translate()

Наиболее часто используемые преобразования — масштабирование, поворот, трансляция и сдвиг. Используйте функцию scale() для масштабирования системы координат на заданный смещение, функцию rotate() для поворота по часовой стрелке и translate() для трансляции (т. е. добавления заданного смещения к точкам). Также можно повернуть систему координат вокруг начала координат, используя функцию shear(). Смотрите пример Аффинные преобразования для визуализации сдвинутой системы координат.

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

class="generic" width="100%">
Пример аффинных преобразований

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

Все операции преобразования выполняются над преобразованием worldTransform(). Матрица преобразует точку на плоскости в другую точку. Дополнительную информацию о матрице преобразования см. в документации по Системе координат и QTransform.

Функция setWorldTransform() может заменить или добавить к текущему worldTransform(). Функция resetTransform() сбрасывает все преобразования, выполненные с помощью функций translate(), scale(), shear(), rotate(), setWorldTransform(), setViewport() и setWindow(). Функция deviceTransform() возвращает матрицу, которая преобразует логические координаты в устройствозависимые координаты платформенного устройства рисования. Последняя функция необходима только при использовании команд рисования платформы на платформенно-зависимом обработчике, когда платформа не выполняет преобразования напрямую.

При рисовании с помощью QPainter, мы указываем точки с использованием логических координат, которые затем преобразуются в физические координаты устройства рисования. Сопоставление логических координат с физическими координатами выполняется комбинированным преобразованием QPainter's combinedTransform(), комбинацией viewport() и window() и worldTransform(). viewport() представляет физические координаты, определяющие произвольную прямоугольную область, window() описывает ту же прямоугольную область в логических координатах, а worldTransform() идентична матрице преобразования.

См. также Систему координат

Обрезка

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

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

Режимы наложения

QPainter предоставляет перечисление CompositionMode, которое определяет правила Porter-Duff для композиции цифровых изображений; оно описывает модель объединения пикселей одного изображения (источника) с пикселями другого изображения (приемника).

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

Обратите внимание, что преобразование композиции выполняется по пикселям. Поэтому существует разница между использованием самого графического примитива и его ограничивающего прямоугольника: ограничивающий прямоугольник содержит пиксели с alpha == 0 (т. е. пиксели вокруг примитива). Эти пиксели будут перезаписывать пиксели другого изображения, эффективно очищая их, в то время как примитив переписывает только свою собственную область.

class="generic" width="100%">
Пример режимов наложения

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

Ограничения

Если вы используете координаты с растровым движком рисования Qt, важно отметить, что, хотя координаты больше чем +/- 215 могут быть использованы, любое рисование с координатами за пределами этого диапазона не гарантирует отображения; рисование может быть обрезано. Это связано с использованием short int в реализации.

Контуры, создаваемые инструментом Qt для отрисовки линий, являются только приближением при работе с кривыми. В большинстве случаев невозможно представить контур отрезка безиевой кривой с помощью другого отрезка безиевой кривой, поэтому Qt приближает контуры кривой, используя несколько меньших кривых. По соображениям производительности существует ограничение на количество кривых, используемых Qt для этих контуров, и, следовательно, при использовании больших толщин или масштабов пера ошибка контура увеличивается. Для генерации контуров с меньшими ошибками можно использовать класс QPainterPathStroker, который имеет функцию-член setCurveThreshold, которая позволяет пользователю указать допустимую ошибку. Еще одним решением является преобразование путей в полигоны, а затем рисование полигонов вместо путей.

Производительность

QPainter — это богатая среда, которая позволяет разработчикам выполнять множество графических операций, таких как градиенты, режимы наложения и векторная графика. И QPainter может делать это на различных аппаратных и программных платформах. Естественно, сочетание аппаратного и программного обеспечения оказывает влияние на производительность, и обеспечение быстроты каждой операции в сочетании со всеми различными сочетаниями режимов наложения, кистей, обрезки, преобразований и т. д. практически невозможно из-за большого числа перестановок. В качестве компромисса мы выбрали подмножество API QPainter и бэкэндов, где производительность гарантируется, насколько это разумно возможно для данного сочетания аппаратного и программного обеспечения.

Бэкэнды, которые мы рассматриваем как высокопроизводительные движки, это:

  • Растровый — Этот бэкэнд реализует все отрисовку в чисто программном режиме и всегда используется для отрисовки в QImages. Для оптимальной производительности используйте только форматы QImage::Format_ARGB32_Premultiplied, QImage::Format_RGB32 или QImage::Format_RGB16. Любой другой формат, включая QImage::Format_ARGB32, имеет значительно худшую производительность. Этот движок используется по умолчанию для QWidget и QPixmap.
  • OpenGL 2.0 (ES) — Этот бэкэнд является основным бэкэндом для аппаратного ускорения графики. Он может работать на настольных компьютерах и встраиваемых устройствах, поддерживающих спецификацию OpenGL 2.0 или OpenGL/ES 2.0. Это включает в себя большинство графических процессоров, выпущенных в последние несколько лет. Движок можно включить, используя QPainter на QOpenGLWidget.

Эти операции:

  • Простые преобразования, то есть трансляция и масштабирование, а также повороты на 0, 90, 180, 270 градусов.
  • drawPixmap() в сочетании с простыми преобразованиями и непрозрачностью с режимом преобразования без сглаживания (QPainter::SmoothPixmapTransform не включен как подсказка рендеринга).
  • Заливка прямоугольников сплошным цветом, градиентами из двух цветов и простыми преобразованиями.
  • Обрезка прямоугольников с простыми преобразованиями и пересекающей обрезкой.
  • Режимы наложения QPainter::CompositionMode_Source и QPainter::CompositionMode_SourceOver.
  • Заливка закругленных прямоугольников сплошным цветом и градиентами из двух цветов.
  • 3x3 патчевых пикселмапов через qDrawBorderPixmap.

Этот список указывает, какие функции безопасно использовать в приложении, где производительность имеет решающее значение. В определенных конфигурациях другие операции также могут быть быстрыми, но перед широким использованием рекомендуется провести тестирование и проверку на системе, где в итоге будет работать программное обеспечение. Также есть случаи, когда дорогостоящие операции допустимы, например, когда результат кешируется в QPixmap.

См. также QPaintDevice, QPaintEngine, Qt SVG, Пример базового рисования и Функции утилиты рисования.

Документация по типам членов

enum QPainter::CompositionMode

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

Обратите внимание, что битовые режимы растровых операций, обозначенные префиксом RasterOp, поддерживаются только в движках рисования X11 и растровом движке. Это означает, что единственный способ использовать эти режимы на Mac — через QImage. Режимы наложения RasterOp, обозначающие режимы смешивания, не поддерживаются для перьев и кистей с альфа-компонентами. Также включение подсказки рендеринга QPainter::Antialiasing фактически отключит режимы RasterOp.

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

Несколько режимов композиции требуют альфа-канала в исходных или целевых изображениях, чтобы иметь эффект. Для оптимальной производительности предпочтительно использовать формат изображения Format_ARGB32_Premultiplied.

Когда устанавливается режим композиции, он применяется ко всем операторам рисования, ручкам, кистям, градиентам и рисованию растровых изображений/картинок.

class="valuelist">
Константа Значение Описание
QPainter::CompositionMode_SourceOver 0 Это режим по умолчанию. Альфа источника используется для смешивания пикселя поверх пикселя назначения.
QPainter::CompositionMode_DestinationOver 1 Альфа назначения используется для смешивания его поверх пикселей источника. Этот режим является обратным режиму CompositionMode_SourceOver.
QPainter::CompositionMode_Clear 2 Пиксели назначения очищаются (устанавливаются в полностью прозрачные), независимо от источника.
QPainter::CompositionMode_Source 3 Выходной пиксель — пиксель источника. (Это означает основную операцию копирования и идентично SourceOver, когда пиксель источника непрозрачен).
QPainter::CompositionMode_Destination 4 Выходной пиксель — пиксель назначения. Это означает, что смешивание не оказывает эффекта. Этот режим является обратным CompositionMode_Source.
QPainter::CompositionMode_SourceIn 5 Выход — пиксель источника, где альфа уменьшена за счёт альфы назначения.
QPainter::CompositionMode_DestinationIn 6 Выход — пиксель назначения, где альфа уменьшена за счёт альфы источника. Этот режим является обратным CompositionMode_SourceIn.
QPainter::CompositionMode_SourceOut 7 Выход — пиксель источника, где альфа уменьшена за счёт обратной альфы назначения.
QPainter::CompositionMode_DestinationOut 8 Выход — пиксель назначения, где альфа уменьшена за счёт обратной альфы источника. Этот режим является обратным CompositionMode_SourceOut.
QPainter::CompositionMode_SourceAtop 9 Пиксель источника смешивается поверх пикселя назначения, при этом альфа пикселя источника уменьшается за счёт альфы пикселя назначения.
QPainter::CompositionMode_DestinationAtop 10 Пиксель назначения смешивается поверх источника, при этом альфа пикселя назначения уменьшается за счёт альфы пикселя назначения. Этот режим является обратным CompositionMode_SourceAtop.
QPainter::CompositionMode_Xor 11 Источник, чья альфа уменьшается с обратной альфой назначения, сливается с назначением, чья альфа уменьшается с обратной альфой источника. CompositionMode_Xor не то же самое, что побитовое XOR.
QPainter::CompositionMode_Plus 12 Складываются вместе как альфа, так и цвет пикселей источника и назначения.
QPainter::CompositionMode_Multiply 13 Выходной цвет — произведение цвета источника на цвет назначения. Умножение на белый цвет оставляет цвет без изменений, а умножение на чёрный приводит к чёрному цвету.
QPainter::CompositionMode_Screen 14 Цвета источника и назначения инвертируются, а затем перемножаются. Экранный цвет с белым даёт белый, а экранный цвет с чёрным оставляет цвет без изменений.
QPainter::CompositionMode_Overlay 15 Умножает или экранирует цвета в зависимости от цвета назначения. Цвет назначения смешивается с цветом источника, чтобы отразить светлость или тёмность назначения.
QPainter::CompositionMode_Darken 16 Выбирается более тёмный из цветов источника и назначения.
QPainter::CompositionMode_Lighten 17 Выбирается более светлый из цветов источника и назначения.
QPainter::CompositionMode_ColorDodge 18 Цвет назначения осветляется, чтобы отразить цвет источника. Чёрный цвет источника оставляет цвет назначения без изменений.
QPainter::CompositionMode_ColorBurn 19 Цвет назначения затемняется, чтобы отразить цвет источника. Белый цвет источника оставляет цвет назначения без изменений.
QPainter::CompositionMode_HardLight 20 Умножает или экранирует цвета в зависимости от цвета источника. Светлый цвет источника осветлит цвет назначения, а тёмный цвет источника затемнит цвет назначения.
QPainter::CompositionMode_SoftLight 21 Затемняет или осветляет цвета в зависимости от цвета источника. Похоже на CompositionMode_HardLight.
QPainter::CompositionMode_Difference 22 Вычитает более тёмный цвет из более светлого. Рисование белым цветом инвертирует цвет назначения, а рисование чёрным цветом оставляет цвет назначения без изменений.
QPainter::CompositionMode_Exclusion 23 Подобно CompositionMode_Difference, но с меньшим контрастом. Рисование белым цветом инвертирует цвет назначения, а рисование чёрным цветом оставляет цвет назначения без изменений.
QPainter::RasterOp_SourceOrDestination 24 Выполняет побитовое ИЛИ над пикселями источника и назначения (src OR dst).
QPainter::RasterOp_SourceAndDestination 25 Выполняет побитовое И над пикселями источника и назначения (src AND dst).
QPainter::RasterOp_SourceXorDestination 26 Выполняет побитовое XOR над пикселями источника и назначения (src XOR dst).
QPainter::RasterOp_NotSourceAndNotDestination 27 Выполняет побитовое НЕ-ИЛИ над пикселями источника и назначения ((NOT src) AND (NOT dst)).
QPainter::RasterOp_NotSourceOrNotDestination 28 Выполняет побитовое НЕ-И над пикселями источника и назначения ((NOT src) OR (NOT dst)).
QPainter::RasterOp_NotSourceXorDestination 29 Выполняет побитовую операцию, где пиксели источника инвертируются, а затем XOR'ятся с назначением ((NOT src) XOR dst).
QPainter::RasterOp_NotSource 30 Выполняет побитовую операцию, где пиксели источника инвертируются (NOT src).
QPainter::RasterOp_NotSourceAndDestination 31 Выполняет побитовую операцию, где источник инвертируется, а затем AND'ится с назначением ((NOT src) AND dst).
QPainter::RasterOp_SourceAndNotDestination 32 Выполняет побитовую операцию, где источник AND'ится с инвертированными пикселями назначения (src AND (NOT dst)).
QPainter::RasterOp_NotSourceOrDestination 33 Выполняет побитовую операцию, где источник инвертируется, а затем OR'ится с назначением ((NOT src) OR dst).
QPainter::RasterOp_ClearDestination 35 Пиксели назначения очищаются (устанавливаются в 0), независимо от источника.
QPainter::RasterOp_SetDestination 36 Пиксели назначения устанавливаются (устанавливаются в 1), независимо от источника.
QPainter::RasterOp_NotDestination 37 Выполняет побитовую операцию, где пиксели назначения инвертируются (NOT dst).
QPainter::RasterOp_SourceOrNotDestination 34 Выполняет побитовую операцию, где источник OR'ится с инвертированными пикселями назначения (src OR (NOT dst)).

См. также compositionMode(), setCompositionMode(), Режимы композиции и Пример композиции изображений.

enum QPainter::PixmapFragmentHintflags QPainter::PixmapFragmentHints

Постоянная Значение Описание
QPainter::OpaqueHint 0x01 Указывает, что фрагменты растрового изображения, которые должны быть нарисованы, непрозрачны. Непрозрачные фрагменты, возможно, быстрее рисуются.

Этот перечисление был введен или изменен в Qt 4.7.

Тип PixmapFragmentHints — это typedef для QFlags<PixmapFragmentHint>. Он хранит результат побитового ИЛИ значений PixmapFragmentHint.

См. также QPainter::drawPixmapFragments() и QPainter::PixmapFragment.

enum QPainter::RenderHintflags QPainter::RenderHints

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

Постоянная Значение Описание
QPainter::Antialiasing 0x01 Указывает, что движок должен выполнить сглаживание краёв примитивов, если это возможно.
QPainter::TextAntialiasing 0x02 Указывает, что движок должен выполнить сглаживание текста, если это возможно. Чтобы принудительно отключить сглаживание текста, не используйте этот флаг. Вместо этого установите QFont::NoAntialias для стратегии стиля шрифта.
QPainter::SmoothPixmapTransform 0x04 Указывает, что движок должен использовать алгоритм плавного преобразования растрового изображения (например, билинейный), а не ближайшего соседа.
QPainter::HighQualityAntialiasing 0x08 Это устаревшее значение, оно будет проигнорировано. Используйте вместо него параметр сглаживания Antialiasing.
QPainter::NonCosmeticDefaultPen 0x10 Устаревшее значение. По умолчанию для QPen теперь используется режим не декоративный.
QPainter::Qt4CompatiblePainting 0x20 Флаг совместимости, указывающий движку использовать те же правила заполнения, основанные на X11, что и в Qt 4, где сглаженное отображение смещается на немного меньше половины пикселя. Также будет обрабатывать дефолтные ручки как не декоративные. Может быть полезно при переносе приложения Qt 4 в Qt 5.

Тип RenderHints — это typedef для QFlags<RenderHint>. Он хранит результат побитового ИЛИ значений RenderHint.

См. также renderHints(), setRenderHint(), Качество отображения и Пример концентрических окружностей.

Документация по членам-функциям

QPainter::QPainter()

Создаёт объект отрисовки.

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

QPainter::QPainter(QPaintDevice *device)

Создаёт объект отрисовки, который начинает отрисовку устройства device немедленно.

Этот конструктор удобен для кратковременных объектов отрисовки, например, в QWidget::paintEvent() и должен использоваться только один раз. Конструктор вызывает begin() за вас, а деструктор QPainter автоматически вызывает end().

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

void MyWidget::paintEvent(QPaintEvent *)
{
    QPainter p;
    p.begin(this);
    p.drawLine(...);        // drawing code
    p.end();
}

Тот же пример с использованием этого конструктора:

void MyWidget::paintEvent(QPaintEvent *)
{
    QPainter p(this);
    p.drawLine(...);        // drawing code
}

Поскольку конструктор не может предоставить обратную связь при неудачном инициализации объекта отрисовки, лучше использовать begin() и end() для отрисовки на внешних устройствах, например, на принтерах.

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

QPainter::~QPainter()

Уничтожает объект отрисовки.

const QBrush &QPainter::background() const

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

См. также setBackground() и Настройки.

Qt::BGMode QPainter::backgroundMode() const

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

См. также setBackgroundMode() и Настройки.

bool QPainter::begin(QPaintDevice *device)

Начинает отрисовку устройства device и возвращает true при успехе; в противном случае возвращает false.

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

Возможные ошибки — это серьёзные проблемы, например:

painter->begin(0); // impossible - paint device cannot be 0

QPixmap image(0, 0);
painter->begin(&image); // impossible - image.isNull() == true;

painter->begin(myWidget);
painter2->begin(myWidget); // impossible - only one painter at a time

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

Предупреждение: Устройство отрисовки может быть обработано только одним объектом отрисовки за раз.

Предупреждение: Отрисовка на QImage с форматом QImage::Format_Indexed8 не поддерживается.

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

void QPainter::beginNativePainting()

Очищает конвейер отрисовки и готовит к непосредственному использованию команд для графического контекста. Должна следовать функция endNativePainting().

Обратите внимание, что только состояния, изменяемые базовым движком отрисовки, будут сброшены до соответствующих значений по умолчанию. Состояния, которые мы сбрасываем, могут меняться от выпуска к выпуску. В настоящее время в движке OpenGL 2 сбрасываются следующие состояния:

  • смешение отключено
  • тесты глубины, маски и обрезки отключены
  • активный блок текстуры сброшен до 0
  • битовая маска глубины, функция глубины и значение глубины очистки сброшены до значений по умолчанию
  • битовая маска маски, операция и функция маски сброшены до значений по умолчанию
  • текущий цвет сброшен до чистого белого

Если, например, пользователь изменит режим полигона OpenGL внутри блока beginNativePaint()/endNativePainting(), endNativePainting() не сбросит его до состояния по умолчанию. Вот пример, который демонстрирует смешение команд отрисовки и исходных команд OpenGL:

QPainter painter(this);
painter.fillRect(0, 0, 128, 128, Qt::green);
painter.beginNativePainting();

glEnable(GL_SCISSOR_TEST);
glScissor(0, 0, 64, 64);

glClearColor(1, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT);

glDisable(GL_SCISSOR_TEST);

painter.endNativePainting();

Эта функция была добавлена в Qt 4.6.

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

QRectF QPainter::boundingRect(const QRectF &rectangle, int flags, const QString &text)

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

Если text не помещается в заданный rectangle с помощью заданных flags, функция возвращает необходимый прямоугольник.

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

  • Qt::AlignLeft
  • Qt::AlignRight
  • Qt::AlignHCenter
  • Qt::AlignTop
  • Qt::AlignBottom
  • Qt::AlignVCenter
  • Qt::AlignCenter
  • Qt::TextSingleLine
  • Qt::TextExpandTabs
  • Qt::TextShowMnemonic
  • Qt::TextWordWrap
  • Qt::TextIncludeTrailingSpaces

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

См. также drawText(), Qt::Alignment и Qt::TextFlag.

QRect QPainter::boundingRect(const QRect &rectangle, int flags, const QString &text)

Это перегруженная функция.

Возвращает ограничивающую прямоугольник текста, как он будет отображаться внутри заданного rectangle с указанными flags используя текущий установленный шрифт.

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

Это перегруженная функция.

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

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

Это перегруженная функция.

Вместо указания флагов как побитового ИЛИ Qt::AlignmentFlag и Qt::TextFlag, эта перегруженная функция принимает аргумент option. Класс QTextOption предоставляет описание общих свойств форматированного текста.

См. также QTextOption.

const QBrush &QPainter::brush() const

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

См. также QPainter::setBrush() и Настройки.

QPoint QPainter::brushOrigin() const

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

См. также setBrushOrigin() и Настройки.

QRectF QPainter::clipBoundingRect() const

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

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

Эта функция была введена в Qt 4.8.

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

QPainterPath QPainter::clipPath() const

Возвращает текущую область обрезки в логических координатах.

Предупреждение: QPainter не хранит объединённую область обрезки явно, так как это обрабатывается базовым QPaintEngine, поэтому траектория создаётся по требованию и преобразуется в текущую систему логических координат. Это потенциально дорогостоящая операция.

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

QRegion QPainter::clipRegion() const

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

Предупреждение: QPainter не хранит объединённую область обрезки явно, так как это обрабатывается базовым QPaintEngine, поэтому траектория создаётся по требованию и преобразуется в текущую систему логических координат. Это потенциально дорогостоящая операция.

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

QTransform QPainter::combinedTransform() const

Возвращает матрицу преобразования, объединяющую текущие преобразования окна/порта и мира.

См. также setWorldTransform(), setWindow() и setViewport().

QPainter::CompositionMode QPainter::compositionMode() const

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

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

QPaintDevice *QPainter::device() const

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

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

const QTransform &QPainter::deviceTransform() const

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

Эта функция только необходима при использовании команд рисования платформы на платформенно-зависимой ручке (Qt::HANDLE), и платформа не выполняет преобразования напрямую.

Перечисление QPaintEngine::PaintEngineFeature можно использовать для определения того, выполняет ли платформа преобразования или нет.

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

void QPainter::drawArc(const QRectF &rectangle, int startAngle, int spanAngle)

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

startAngle и spanAngle должны быть указаны в 1/16-й градусе, т.е. полный круг равен 5760 (16 * 360). Положительные значения углов означают против часовой стрелки, а отрицательные — по часовой стрелке. Ноль градусов соответствует положению «3 часа».

QRectF rectangle(10.0, 20.0, 80.0, 60.0);
int startAngle = 30 * 16;
int spanAngle = 120 * 16;

QPainter painter(this);
painter.drawArc(rectangle, startAngle, spanAngle);

См. также drawPie(), drawChord() и Система координат.

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

Это перегруженный метод.

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

void QPainter::drawArc(int x, int y, int width, int height, int startAngle, int spanAngle)

Это перегруженный метод.

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

void QPainter::drawChord(const QRectF &rectangle, int startAngle, int spanAngle)

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

startAngle и spanAngle должны быть указаны в 1/16-й градусе, т.е. полный круг равен 5760 (16 * 360). Положительные значения углов означают против часовой стрелки, а отрицательные — по часовой стрелке. Ноль градусов соответствует положению «3 часа».

QRectF rectangle(10.0, 20.0, 80.0, 60.0);
int startAngle = 30 * 16;
int spanAngle = 120 * 16;

QPainter painter(this);
painter.drawChord(rect, startAngle, spanAngle);

См. также drawArc(), drawPie() и Система координат.

void QPainter::drawChord(int x, int y, int width, int height, int startAngle, int spanAngle)

Это перегруженный метод.

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

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

Это перегруженный метод.

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

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

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

static const QPointF points[4] = {
    QPointF(10.0, 80.0),
    QPointF(20.0, 10.0),
    QPointF(80.0, 30.0),
    QPointF(90.0, 70.0)
};

QPainter painter(this);
painter.drawConvexPolygon(points, 4);

Первая точка неявно соединяется с последней, и многоугольник заполняется текущей кистью. Если предоставленный многоугольник не выпуклый, т.е. он содержит хотя бы один угол больше 180 градусов, результаты не определены.

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

См. также drawPolygon(), drawPolyline() и Система координат.

void QPainter::drawConvexPolygon(const QPolygonF &polygon)

Это перегруженный метод.

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

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

Это перегруженный метод.

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

void QPainter::drawConvexPolygon(const QPolygon &polygon)

Это перегруженный метод.

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

void QPainter::drawEllipse(const QRectF &rectangle)

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

Заполненный эллипс имеет размер rectangle.size(). Эллипс с обводкой имеет размер rectangle.size() плюс ширина линии.

QRectF rectangle(10.0, 20.0, 80.0, 60.0);

QPainter painter(this);
painter.drawEllipse(rectangle);

См. также drawPie() и Система координат.

void QPainter::drawEllipse(const QRect &rectangle)

Это перегруженный метод.

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

void QPainter::drawEllipse(int x, int y, int width, int height)

Это перегруженный метод.

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

void QPainter::drawEllipse(const QPointF &center, qreal rx, qreal ry)

Это перегруженный метод.

Рисует эллипс, расположенный в точке center с радиусами rx и ry.

Этот метод был представлен в Qt 4.4.

void QPainter::drawEllipse(const QPoint &center, int rx, int ry)

Это перегруженный метод.

Рисует эллипс, расположенный в точке center с радиусами rx и ry.

Этот метод был представлен в Qt 4.4.

void QPainter::drawGlyphRun(const QPointF &position, const QGlyphRun &glyphs)

Рисует глифы, представленные glyphs в точке position. Точка position задаёт край базовой линии для строки глифов. Глифы будут получены из шрифта, выбранного в glyphs, и по смещениям, заданным позициями в glyphs.

Этот метод был представлен в Qt 4.8.

См. также QGlyphRun::setRawFont(), QGlyphRun::setPositions() и QGlyphRun::setGlyphIndexes().

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

Рисует прямоугольную область source заданной image в прямоугольник target на устройстве отрисовки.

Примечание: Если размеры изображения и прямоугольника не совпадают, изображение будет масштабировано, чтобы уместиться в прямоугольник.

Примечание: См. Рисование версий изображений с высоким разрешением о том, как это влияет на QImage::devicePixelRatio().

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

QRectF target(10.0, 20.0, 80.0, 60.0);
QRectF source(0.0, 0.0, 70.0, 40.0);
QImage image(":/images/myImage.png");

QPainter painter(this);
painter.drawImage(target, image, source);

См. также drawPixmap() и QImage::devicePixelRatio().

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

Это перегруженный метод.

Рисует прямоугольную область source заданной image в прямоугольник target на устройстве отрисовки.

Примечание: Если размеры изображения и прямоугольника не совпадают, изображение будет масштабировано, чтобы уместиться в прямоугольник.

void QPainter::drawImage(const QPointF &point, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = ...)

Это перегруженный метод.

Рисует прямоугольную область source заданной image, начало которой расположено в точке point.

void QPainter::drawImage(const QPoint &point, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = ...)

Это перегруженный метод.

Рисует прямоугольную область source заданной image, начало которой расположено в точке point.

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

Это перегруженный метод.

Рисует заданное image в заданный rectangle.

Примечание: Если размеры изображения и прямоугольника не совпадают, изображение будет масштабировано, чтобы уместиться в прямоугольник.

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

Это перегруженный метод.

Рисует заданное image в заданный rectangle.

Примечание: Если размеры изображения и прямоугольника не совпадают, изображение будет масштабировано, чтобы уместиться в прямоугольник.

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

Это перегруженный метод.

Рисует заданное image в заданной точке point.

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

Это перегруженный метод.

Рисует заданное image в заданной точке point.

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) указывает размер изображения, которое будет нарисовано. По умолчанию всё изображение (0, 0) (и отрицательные значения) означает до правого нижнего угла изображения.

void QPainter::drawLine(const QLineF &line)

Рисует линию, определённую line.

QLineF line(10.0, 80.0, 90.0, 20.0);

QPainter(this);
painter.drawLine(line);

См. также drawLines(), drawPolyline() и Система координат.

void QPainter::drawLine(const QLine &line)

Это перегруженный метод.

Рисует линию, определённую line.

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

Это перегруженный метод.

Рисует линию от (x1, y1) до (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::drawLines(const QLineF *lines, int lineCount)

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

См. также drawLine() и drawPolyline().

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

Это перегруженный метод.

Рисует набор линий, определённых списком lines, используя текущую кисть и штриховку.

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

Это перегруженный метод.

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

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

Это перегруженный метод.

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

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

Это перегруженный метод.

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

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

Это перегруженный метод.

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

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

Это перегруженный метод.

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

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

Это перегруженный метод.

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

void QPainter::drawPath(const QPainterPath &path)

Рисует заданный объект path с использованием текущей кисти для контура и текущей заливки для заполнения.

QPainterPath path;
path.moveTo(20, 80);
path.lineTo(20, 30);
path.cubicTo(80, 0, 50, 50, 80, 80);

QPainter painter(this);
painter.drawPath(path);

См. также пример Painter Paths и пример деформации вектора.

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

Перерисовывает заданную picture в заданной точке.

Класс QPicture — это устройство рисования, которое записывает и перерисовывает команды QPainter. Рисунок сериализует команды рисования в устройство ввода-вывода в платформенно-независимом формате. Всё, что можно нарисовать на виджете или пиксельном изображении, также можно сохранить в рисунке.

Эта функция делает точно то же, что и QPicture::play(), когда вызывается с point = QPoint(0, 0).

QPicture picture;
QPointF point(10.0, 20.0)
picture.load("drawing.pic");

QPainter painter(this);
painter.drawPicture(0, 0, picture);

См. также QPicture::play().

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

Это перегруженный метод.

Рисует заданный рисунок в точке (x, y).

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

Это перегруженный метод.

Перерисовывает заданный рисунок в заданной точке.

void QPainter::drawPie(const QRectF &rectangle, int startAngle, int spanAngle)

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

Сектор заполняется текущей заливкой.

Углы startAngle и spanAngle должны быть указаны в 1/16 доле градуса, т.е. полный круг равен 5760 (16 * 360). Положительные значения углов означают против часовой стрелки, а отрицательные — по часовой стрелке. Ноль градусов соответствует положению "3 часа".

QRectF rectangle(10.0, 20.0, 80.0, 60.0);
int startAngle = 30 * 16;
int spanAngle = 120 * 16;

QPainter painter(this);
painter.drawPie(rectangle, startAngle, spanAngle);

См. также drawEllipse(), drawChord() и систему координат.

void QPainter::drawPie(int x, int y, int width, int height, int startAngle, int spanAngle)

Это перегруженный метод.

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

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

Это перегруженный метод.

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

void QPainter::drawPixmap(const QRectF &target, const QPixmap &pixmap, const QRectF &source)

Рисует прямоугольную часть source заданного pixmap в заданный target в устройстве рисования.

Примечание: pixmap масштабируется для соответствия прямоугольнику, если размеры обоих не совпадают.

Примечание: См. Рисование высококачественных версий пиксельных изображений и изображений, как это влияет на QPixmap::devicePixelRatio().

QRectF target(10.0, 20.0, 80.0, 60.0);
QRectF source(0.0, 0.0, 70.0, 40.0);
QPixmap pixmap(":myPixmap.png");

QPainter(this);
painter.drawPixmap(target, pixmap, source);

Если pixmap является QBitmap, она рисуется с битами, которые «установлены» с использованием цвета кисти. Если backgroundMode равен Qt::OpaqueMode, не «установленные» биты рисуются цветом фона; если backgroundMode равен Qt::TransparentMode, не «установленные» биты прозрачны. Рисование растровых изображений с градиентами или текстурными цветами не поддерживается.

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

void QPainter::drawPixmap(const QRect &target, const QPixmap &pixmap, const QRect &source)

Это перегруженный метод.

Рисует прямоугольную часть source заданного pixmap в заданный target в устройстве рисования.

Примечание: pixmap масштабируется для соответствия прямоугольнику, если размеры обоих не совпадают.

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

Это перегруженный метод.

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

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

Это перегруженный метод.

Рисует pixmap в координатах (x, y), копируя часть заданного pixmap в устройство рисования.

(x, y) определяет верхнюю левую точку в устройстве рисования, на которую будет нарисовано. (sx, sy) определяет верхнюю левую точку в pixmap, которая будет нарисована. По умолчанию это (0, 0).

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

void QPainter::drawPixmap(const QPointF &point, const QPixmap &pixmap, const QRectF &source)

Это перегруженный метод.

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

void QPainter::drawPixmap(const QPoint &point, const QPixmap &pixmap, const QRect &source)

Это перегруженный метод.

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

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

Это перегруженный метод.

Рисует заданную pixmap с началом координат в заданной точке point.

void QPainter::drawPixmap(const QPoint &point, const QPixmap &pixmap)

Это перегруженный метод.

Рисует заданную pixmap с началом координат в заданной точке point.

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

Это перегруженный метод.

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

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

Это перегруженный метод.

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

Примечание: Pixmap масштабируется для соответствия прямоугольнику, если размеры pixmap и rectangle не совпадают.

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

Это перегруженный метод.

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

void QPainter::drawPixmapFragments(const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap, QPainter::PixmapFragmentHints hints = ...)

Этот метод используется для рисования pixmap или подпрямоугольника pixmap в нескольких позициях с различным масштабом, поворотом и непрозрачностью. fragments — массив из fragmentCount элементов, определяющих параметры рисования каждого фрагмента pixmap. Параметр hints может использоваться для передачи подсказок рисования.

Этот метод потенциально быстрее, чем несколько вызовов drawPixmap(), так как бэкенд может оптимизировать изменения состояния.

Этот метод был введен в Qt 4.7.

См. также QPainter::PixmapFragment и QPainter::PixmapFragmentHint.

void QPainter::drawPoint(const QPointF &position)

Рисует одну точку в заданной position с использованием текущего цвета пера.

См. также Система координат.

void QPainter::drawPoint(const QPoint &position)

Это перегруженный метод.

Рисует одну точку в заданной position с использованием текущего цвета пера.

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

Это перегруженный метод.

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

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

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

См. также Система координат.

void QPainter::drawPoints(const QPolygonF &points)

Это перегруженный метод.

Рисует точки в векторе points.

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

Это перегруженный метод.

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

void QPainter::drawPoints(const QPolygon &points)

Это перегруженный метод.

Рисует точки в векторе points.

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

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

static const QPointF points[4] = {
    QPointF(10.0, 80.0),
    QPointF(20.0, 10.0),
    QPointF(80.0, 30.0),
    QPointF(90.0, 70.0)
};

QPainter painter(this);
painter.drawPolygon(points, 4);

Первая точка неявно соединяется с последней, и многоугольник заполняется текущей кистью().

Если fillRule равно Qt::WindingFill, многоугольник заполняется с использованием алгоритма заполнения обхода. Если fillRule равно Qt::OddEvenFill, многоугольник заполняется с использованием алгоритма заполнения чётность-нечётность. Подробнее об этих правилах заполнения см. Qt::FillRule.

См. также drawConvexPolygon(), drawPolyline(), и Система координат.

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

Это перегруженный метод.

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

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

Это перегруженный метод.

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

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

Это перегруженный метод.

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

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

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

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

static const QPointF points[3] = {
    QPointF(10.0, 80.0),
    QPointF(20.0, 10.0),
    QPointF(80.0, 30.0),
};

QPainter painter(this);
painter.drawPolyline(points, 3);

См. также drawLines(), drawPolygon(), и Система координат.

void QPainter::drawPolyline(const QPolygonF &points)

Это перегруженный метод.

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

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

Это перегруженный метод.

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

void QPainter::drawPolyline(const QPolygon &points)

Это перегруженный метод.

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

void QPainter::drawRect(const QRectF &rectangle)

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

Заполненный прямоугольник имеет размеры rectangle.size(). Рисуемый контуром прямоугольник имеет размеры rectangle.size() плюс ширина пера.

QRectF rectangle(10.0, 20.0, 80.0, 60.0);

QPainter painter(this);
painter.drawRect(rectangle);

См. также drawRects(), drawPolygon(), и Система координат.

void QPainter::drawRect(int x, int y, int width, int height)

Это перегруженный метод.

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

void QPainter::drawRect(const QRect &rectangle)

Это перегруженный метод.

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

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

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

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

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

Это перегруженный метод.

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

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

Это перегруженный метод.

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

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

Это перегруженный метод.

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

void QPainter::drawRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)

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

Аргументы xRadius и yRadius задают радиусы эллипсов, определяющих скругленные углы прямоугольника. Когда mode равен Qt::RelativeSize, xRadius и yRadius задаются в процентах от половины ширины и высоты прямоугольника соответственно и должны быть в диапазоне от 0,0 до 100,0.

Размер заполненного прямоугольника равен rect.size(). Размер прямоугольника с обводкой равен rect.size() плюс толщина линии.

QRectF rectangle(10.0, 20.0, 80.0, 60.0);

QPainter painter(this);
painter.drawRoundedRect(rectangle, 20.0, 15.0);

Этот метод был введен в Qt 4.4.

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

void QPainter::drawRoundedRect(int x, int y, int w, int h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = ...)

Это перегруженный метод.

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

Этот метод был введен в Qt 4.4.

void QPainter::drawRoundedRect(const QRect &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = ...)

Это перегруженный метод.

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

Этот метод был введен в Qt 4.4.

void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText &staticText)

Рисует заданный текст staticText в заданной точке topLeftPosition.

Текст будет нарисован с использованием шрифта и преобразования, установленных в рисовальщике. Если шрифт и/или преобразование, установленные в рисовальщике, отличаются от тех, которые использовались для инициализации макета QStaticText, то макет необходимо пересчитать. Используйте QStaticText::prepare(), чтобы инициализировать staticText шрифтом и преобразованием, с которыми он будет нарисован.

Если topLeftPosition не совпадает с положением, когда staticText был инициализирован или последний раз нарисован, при перемещении текста в новое положение будет небольшая нагрузка.

Примечание: Если преобразование рисовальщика не аффинное, то staticText будет нарисован с помощью обычных вызовов drawText(), теряя любые потенциальные улучшения производительности.

Примечание: Положение по оси y используется как верхняя часть шрифта.

Этот метод был введен в Qt 4.7.

См. также QStaticText.

void QPainter::drawStaticText(const QPoint &topLeftPosition, const QStaticText &staticText)

Это перегруженный метод.

Рисует staticText в точке topLeftPosition.

Примечание: Положение по оси y используется как верхняя часть шрифта.

Этот метод был введен в Qt 4.7.

void QPainter::drawStaticText(int left, int top, const QStaticText &staticText)

Это перегруженный метод.

Рисует staticText в координатах left и top.

Примечание: Положение по оси y используется как верхняя часть шрифта.

Этот метод был введен в Qt 4.7.

void QPainter::drawText(const QPointF &position, const QString &text)

Рисует заданный текст text с текущим направлением текста, начиная с заданной точки position.

Этот метод не обрабатывает символ новой строки (\n), так как он не может разбивать текст на несколько строк и не может отобразить символ новой строки. Используйте перегрузку QPainter::drawText(), принимающую прямоугольник, если нужно отображать несколько строк текста с символом новой строки или если требуется обрезка текста.

По умолчанию, QPainter рисует текст с антиалиасингом.

Примечание: Положение по оси y используется как основание шрифта.

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

void QPainter::drawText(const QPoint &position, const QString &text)

Это перегруженный метод.

Рисует заданный текст text с текущим направлением текста, начиная с заданной точки position.

По умолчанию, QPainter рисует текст с антиалиасингом.

Примечание: Положение по оси y используется как основание шрифта.

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

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

Это перегруженный метод.

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

По умолчанию, QPainter рисует текст с антиалиасингом.

Примечание: Положение по оси y используется как основание шрифта.

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

void QPainter::drawText(const QRectF &rectangle, int flags, const QString &text, QRectF *boundingRect = nullptr)

Это перегруженный метод.

Рисует заданный текст text внутри заданного прямоугольника rectangle. Прямоугольник rectangle и флаги выравнивания flags определяют точки привязки для text.

QPainter painter(this);
painter.drawText(rect, Qt::AlignCenter, tr("Qt\nProject"));

Прямоугольник boundingRect (если не равен nullptr) устанавливается в соответствии с прямоугольником, ограничивающим весь текст. Например, на изображении пунктирная линия представляет boundingRect, рассчитанный функцией, а штриховая линия представляет rectangle:

QPainter painter(this);
QFont font = painter.font();
font.setPixelSize(48);
painter.setFont(font);

const QRect rectangle = QRect(0, 0, 100, 50);
QRect boundingRect;
painter.drawText(rectangle, 0, tr("Hello"), &boundingRect);

QPen pen = painter.pen();
pen.setStyle(Qt::DotLine);
painter.setPen(pen);
painter.drawRect(boundingRect.adjusted(0, 0, -pen.width(), -pen.width()));

pen.setStyle(Qt::DashLine);
painter.setPen(pen);
painter.drawRect(rectangle.adjusted(0, 0, -pen.width(), -pen.width()));

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

  • Qt::AlignLeft
  • Qt::AlignRight
  • Qt::AlignHCenter
  • Qt::AlignJustify
  • Qt::AlignTop
  • Qt::AlignBottom
  • Qt::AlignVCenter
  • Qt::AlignCenter
  • Qt::TextDontClip
  • Qt::TextSingleLine
  • Qt::TextExpandTabs
  • Qt::TextShowMnemonic
  • Qt::TextWordWrap
  • Qt::TextIncludeTrailingSpaces

По умолчанию, QPainter рисует текст с антиалиасингом.

Примечание: Координата y прямоугольника rectangle используется как верхняя часть шрифта.

См. также Qt::AlignmentFlag, Qt::TextFlag, boundingRect() и layoutDirection().

void QPainter::drawText(const QRect &rectangle, int flags, const QString &text, QRect *boundingRect = nullptr)

Это перегруженный функцией.

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

boundingRect (если не null) устанавливается в прямоугольник, который должен охватывать весь текст. Например, на следующем изображении пунктирная линия представляет собой boundingRect, рассчитанный функцией, а штриховая линия представляет собой прямоугольник:

QPainter painter(this);
QFont font = painter.font();
font.setPixelSize(48);
painter.setFont(font);

const QRect rectangle = QRect(0, 0, 100, 50);
QRect boundingRect;
painter.drawText(rectangle, 0, tr("Hello"), &boundingRect);

QPen pen = painter.pen();
pen.setStyle(Qt::DotLine);
painter.setPen(pen);
painter.drawRect(boundingRect.adjusted(0, 0, -pen.width(), -pen.width()));

pen.setStyle(Qt::DashLine);
painter.setPen(pen);
painter.drawRect(rectangle.adjusted(0, 0, -pen.width(), -pen.width()));

По умолчанию, QPainter отображает текст с антиалиасингом.

Примечание: Координата y прямоугольника используется в качестве верхней границы шрифта.

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

void QPainter::drawText(int x, int y, int width, int height, int flags, const QString &text, QRect *boundingRect = nullptr)

Это перегруженный функцией.

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

boundingRect (если не null) устанавливается в прямоугольник, который должен охватывать весь текст. Например, на следующем изображении пунктирная линия представляет собой boundingRect, рассчитанный функцией, а штриховая линия представляет собой прямоугольник, определенный x, y, width и height:

QPainter painter(this);
QFont font = painter.font();
font.setPixelSize(48);
painter.setFont(font);

const QRect rectangle = QRect(0, 0, 100, 50);
QRect boundingRect;
painter.drawText(rectangle, 0, tr("Hello"), &boundingRect);

QPen pen = painter.pen();
pen.setStyle(Qt::DotLine);
painter.setPen(pen);
painter.drawRect(boundingRect.adjusted(0, 0, -pen.width(), -pen.width()));

pen.setStyle(Qt::DashLine);
painter.setPen(pen);
painter.drawRect(rectangle.adjusted(0, 0, -pen.width(), -pen.width()));

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

  • Qt::AlignLeft
  • Qt::AlignRight
  • Qt::AlignHCenter
  • Qt::AlignJustify
  • Qt::AlignTop
  • Qt::AlignBottom
  • Qt::AlignVCenter
  • Qt::AlignCenter
  • Qt::TextSingleLine
  • Qt::TextExpandTabs
  • Qt::TextShowMnemonic
  • Qt::TextWordWrap

По умолчанию, QPainter отображает текст с антиалиасингом.

Примечание: Значение y используется как верхняя позиция шрифта.

См. также Qt::AlignmentFlag, Qt::TextFlag, setFont() и setPen().

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

Это перегруженный функцией.

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

По умолчанию, QPainter отображает текст с антиалиасингом.

Примечание: Координата y прямоугольника используется в качестве верхней границы шрифта.

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

void QPainter::drawTiledPixmap(const QRectF &rectangle, const QPixmap &pixmap, const QPointF &position = QPointF())

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

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

drawTiledPixmap() обеспечит одинаковый визуальный узор плитки на дисплеях с высоким разрешением (с devicePixelRatio > 1) по сравнению с дисплеями с обычным разрешением. Установите devicePixelRatio в pixmap, чтобы контролировать размер плитки. Например, установка его в 2 уменьшит ширину и высоту плитки в 2 раза (как на дисплеях 1x, так и на 2x) и обеспечит вывод высокого разрешения на дисплеях 2x.

Смещение position всегда задается в системе координат художника, независимо от devicePixelRatio дисплея.

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

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

Это перегруженный функцией.

Отображает pixmap с эффектом плитки в указанном прямоугольнике.

(x, y) определяет верхнюю левую точку в устройстве рисования, на которую будет нарисовано изображение; с заданной width и height. (sx, sy) определяет верхнюю левую точку в pixmap, которая будет нарисована; по умолчанию (0, 0).

void QPainter::drawTiledPixmap(const QRect &rectangle, const QPixmap &pixmap, const QPoint &position = ...)

Это перегруженный функцией.

Отображает pixmap с эффектом плитки, внутри заданного прямоугольника с началом в заданной позиции.

bool QPainter::end()

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

Возвращает true если художник больше не активен; в противном случае возвращает false.

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

void QPainter::endNativePainting()

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

Эта функция была представлена в Qt 4.6.

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

void QPainter::eraseRect(const QRectF &rectangle)

Очищает область внутри заданного прямоугольника. Эквивалентно вызову

fillRect(rectangle, background()).

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

void QPainter::eraseRect(int x, int y, int width, int height)

Это перегруженный функцией.

Очищает область внутри прямоугольника, начинающегося в точке (x, y) с заданной width и height.

void QPainter::eraseRect(const QRect &rectangle)

Это перегруженный функцией.

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

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

Заполняет заданный путь с использованием заданной кисти. Обводка не выполняется.

В качестве альтернативы, вы можете указать QColor вместо QBrush; конструктор QBrush (принимающий аргумент QColor) автоматически создаст кисть сплошного узора.

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

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

Заполняет заданный прямоугольник указанной кистью.

В качестве альтернативы, вы можете указать QColor вместо QBrush; конструктор QBrush (принимающий аргумент QColor) автоматически создаст кисть сплошного узора.

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

void QPainter::fillRect(int x, int y, int width, int height, const QBrush &brush)

Это перегруженный функцией.

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

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

Это перегруженный функцией.

Заполняет заданный прямоугольник указанной кистью.

void QPainter::fillRect(const QRectF &rectangle, const QColor &color)

Это перегруженный функцией.

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

Эта функция была представлена в Qt 4.5.

void QPainter::fillRect(int x, int y, int width, int height, const QColor &color)

Это перегруженный функцией.

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

Эта функция была представлена в Qt 4.5.

void QPainter::fillRect(const QRect &rectangle, const QColor &color)

Это перегруженный метод.

Заполняет заданный прямоугольник rectangle указанным цветом color.

Этот метод был добавлен в Qt 4.5.

void QPainter::fillRect(int x, int y, int width, int height, Qt::GlobalColor color)

Это перегруженный метод.

Заполняет прямоугольник, начинающийся в точке (x, y) с заданной width и height, используя указанный цвет color.

Этот метод был добавлен в Qt 4.5.

void QPainter::fillRect(const QRect &rectangle, Qt::GlobalColor color)

Это перегруженный метод.

Заполняет заданный прямоугольник rectangle указанным цветом color.

Этот метод был добавлен в Qt 4.5.

void QPainter::fillRect(const QRectF &rectangle, Qt::GlobalColor color)

Это перегруженный метод.

Заполняет заданный прямоугольник rectangle указанным цветом color.

Этот метод был добавлен в Qt 4.5.

void QPainter::fillRect(int x, int y, int width, int height, Qt::BrushStyle style)

Это перегруженный метод.

Заполняет прямоугольник, начинающийся в точке (x, y) с заданной width и height, используя указанный стиль заливки style.

Этот метод был добавлен в Qt 4.5.

void QPainter::fillRect(const QRect &rectangle, Qt::BrushStyle style)

Это перегруженный метод.

Заполняет заданный прямоугольник rectangle указанным стилем заливки style.

Этот метод был добавлен в Qt 4.5.

void QPainter::fillRect(const QRectF &rectangle, Qt::BrushStyle style)

Это перегруженный метод.

Заполняет заданный прямоугольник rectangle указанным стилем заливки style.

Этот метод был добавлен в Qt 4.5.

void QPainter::fillRect(int x, int y, int width, int height, QGradient::Preset preset)

Это перегруженный метод.

Заполняет прямоугольник, начинающийся в точке (x, y) с заданной width и height, используя заданный вид градиента preset.

Этот метод был добавлен в Qt 5.12.

void QPainter::fillRect(const QRect &rectangle, QGradient::Preset preset)

Это перегруженный метод.

Заполняет заданный прямоугольник rectangle указанным видом градиента preset.

Этот метод был добавлен в Qt 5.12.

void QPainter::fillRect(const QRectF &rectangle, QGradient::Preset preset)

Это перегруженный метод.

Заполняет заданный прямоугольник rectangle указанным видом градиента preset.

Этот метод был добавлен в Qt 5.12.

const QFont &QPainter::font() const

Возвращает текущий шрифт, используемый для рисования текста.

См. также setFont(), drawText() и Settings.

QFontInfo QPainter::fontInfo() const

Возвращает информацию о шрифте для рисовальщика, если рисовальщик активен. В противном случае результат не определён.

См. также font(), isActive() и Settings.

QFontMetrics QPainter::fontMetrics() const

Возвращает метрики шрифта для рисовальщика, если рисовальщик активен. В противном случае результат не определён.

См. также font(), isActive() и Settings.

bool QPainter::hasClipping() const

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

См. также setClipping() и Обрезка.

bool QPainter::isActive() const

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

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

Qt::LayoutDirection QPainter::layoutDirection() const

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

См. также QTextOption::textDirection(), setLayoutDirection(), drawText() и Settings.

qreal QPainter::opacity() const

Возвращает непрозрачность рисовальщика. Значение по умолчанию — 1.

Этот метод был добавлен в Qt 4.2.

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

QPaintEngine *QPainter::paintEngine() const

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

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

const QPen &QPainter::pen() const

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

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

QPainter::RenderHints QPainter::renderHints() const

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

См. также setRenderHints(), testRenderHint() и Качество отрисовки.

void QPainter::resetTransform()

Сбрасывает все преобразования, произведённые с помощью translate(), scale(), shear(), rotate(), setWorldTransform(), setViewport() и setWindow().

См. также Преобразования координат.

void QPainter::restore()

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

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

void QPainter::rotate(qreal angle)

Поворачивает систему координат по часовой стрелке. Переданный параметр angle задаётся в градусах.

См. также setWorldTransform() и Преобразования координат.

void QPainter::save()

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

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

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

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

См. также setWorldTransform() и Преобразования координат.

void QPainter::setBackground(const QBrush &brush)

Устанавливает кисть фона рисовальщика на заданную brush.

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

См. также background(), setBackgroundMode() и Settings.

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

Устанавливает режим фона рисовальщика на заданный mode.

Qt::TransparentMode (по умолчанию) рисует пунктирные линии и текст без задания пикселей фона. Qt::OpaqueMode заполняет это пространство текущим цветом фона.

Обратите внимание, что для рисования растрового или пиксельного изображения прозрачно, необходимо использовать QPixmap::setMask().

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

void QPainter::setBrush(const QBrush &brush)

Устанавливает кисть рисовальщика на заданную brush.

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

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

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

Это перегруженный метод.

Устанавливает кисть рисовальщика на черный цвет и заданный style.

void QPainter::setBrushOrigin(const QPointF &position)

Устанавливает начало кисти в position.

Начало кисти задает координаты (0, 0) кисти рисовальщика.

Обратите внимание, что в то время как brushOrigin() был необходим для адаптации фона родительского виджета в Qt 3, это больше не требуется, так как рисовальщик Qt 4 не рисует фон, пока вы явно не укажете это, установив свойство виджета autoFillBackground в true.

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

void QPainter::setBrushOrigin(const QPoint &position)

Это перегруженный метод.

Устанавливает начало кисти в заданную position.

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

Это перегруженный метод.

Устанавливает начало кисти в точку (x, y).

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

Включает обрезку и устанавливает путь обрезки для рисовальщика на заданный path с заданной операцией обрезки operation.

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

См. также clipPath(), clipRegion() и Обрезка.

void QPainter::setClipRect(const QRectF &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)

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

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

См. также clipRegion(), setClipping() и Обрезка.

void QPainter::setClipRect(const QRect &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)

Это перегруженный метод.

Включает обрезку и устанавливает область обрезки в заданный rectangle с заданной операцией обрезки.

void QPainter::setClipRect(int x, int y, int width, int height, Qt::ClipOperation operation = Qt::ReplaceClip)

Включает обрезку и устанавливает область обрезки в прямоугольник, начинающийся в точке (x, y) с заданной width и height.

void QPainter::setClipRegion(const QRegion &region, Qt::ClipOperation operation = Qt::ReplaceClip)

Устанавливает область обрезки в заданную region с указанной операцией обрезки operation. По умолчанию операция обрезки - замена текущей области обрезки.

Обратите внимание, что область обрезки задается в логических координатах.

См. также clipRegion(), setClipRect() и Обрезка.

void QPainter::setClipping(bool enable)

Включает обрезку, если enable равно true, или отключает обрезку, если enable равно false.

См. также hasClipping() и Обрезка.

void QPainter::setCompositionMode(QPainter::CompositionMode mode)

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

Предупреждение: Только QPainter, работающий с QImage, полностью поддерживает все режимы композиции. Режимы RasterOp поддерживаются для X11, как описано в compositionMode().

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

void QPainter::setFont(const QFont &font)

Устанавливает шрифт рисовальщика на заданный font.

Этот шрифт используется последующими функциями drawText(). Цвет текста совпадает с цветом пера.

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

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

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

Устанавливает направление выравнивания, используемое рисовальщиком при рисовании текста, на указанное direction.

По умолчанию используется Qt::LayoutDirectionAuto, которая неявно определяет направление из нарисованного текста.

См. также QTextOption::setTextDirection(), layoutDirection(), drawText() и Settings.

void QPainter::setOpacity(qreal opacity)

Устанавливает непрозрачность рисовальщика на opacity. Значение должно находиться в диапазоне от 0,0 до 1,0, где 0,0 - полностью прозрачно, а 1,0 - полностью непрозрачно.

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

Эта функция была представлена в Qt 4.2.

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

void QPainter::setPen(const QPen &pen)

Устанавливает перо рисовальщика на заданное pen.

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

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

void QPainter::setPen(const QColor &color)

Это перегруженный метод.

Устанавливает перо рисовальщика с типом Qt::SolidLine, шириной 1 и заданным color.

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

Это перегруженный метод.

Устанавливает перо рисовальщика с заданным style, шириной 1 и черным цветом.

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

Устанавливает заданный параметр качества отрисовки hint рисовальщика, если on равно true; в противном случае очищает параметр качества отрисовки.

См. также setRenderHints(), renderHints() и Качество отрисовки.

void QPainter::setRenderHints(QPainter::RenderHints hints, bool on = true)

Устанавливает заданные параметры качества отрисовки hints рисовальщика, если on равно true; в противном случае очищает параметры качества отрисовки.

Эта функция была представлена в Qt 4.2.

См. также setRenderHint(), renderHints() и Качество отрисовки.

void QPainter::setTransform(const QTransform &transform, bool combine = false)

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

Эта функция была представлена в Qt 4.3.

См. также transform() и setWorldTransform().

END_OF_DOCUMENT_MARKER

void QPainter::setViewTransformEnabled(bool enable)

Включает преобразования вида, если enable имеет значение true, или отключает преобразования вида, если enable имеет значение false.

См. также viewTransformEnabled() и Преобразование окно-порт.

void QPainter::setViewport(const QRect &rectangle)

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

Прямоугольник порта является частью преобразования вида. Порт определяет систему координат устройства. Его сестра, window(), определяет логическую систему координат.

По умолчанию прямоугольник порта такой же, как прямоугольник устройства.

См. также viewport(), viewTransformEnabled() и Преобразование окно-порт.

void QPainter::setViewport(int x, int y, int width, int height)

Это перегруженный метод.

Устанавливает прямоугольник порта художника в прямоугольник, начинающийся в точке (x, y) с заданной width и height.

void QPainter::setWindow(const QRect &rectangle)

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

Прямоугольник окна является частью преобразования вида. Окно определяет логическую систему координат. Его сестра, viewport(), определяет систему координат устройства.

По умолчанию прямоугольник окна такой же, как прямоугольник устройства.

См. также window(), viewTransformEnabled() и Преобразование окно-порт.

void QPainter::setWindow(int x, int y, int width, int height)

Это перегруженный метод.

Устанавливает окно художника в прямоугольник, начинающийся в точке (x, y) с заданной width и height.

void QPainter::setWorldMatrixEnabled(bool enable)

Включает преобразования, если enable имеет значение true, или отключает преобразования, если enable имеет значение false. Матрица преобразования мира не изменяется.

Данная функция была введена в Qt 4.2.

См. также worldMatrixEnabled(), worldTransform() и Преобразования координат.

void QPainter::setWorldTransform(const QTransform &matrix, bool combine = false)

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

См. также worldTransform(), transform() и setTransform().

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

Выполняет сдвиг системы координат на (sh, sv).

См. также setWorldTransform() и Преобразования координат.

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

Отображает контур (обводку) пути path с помощью пера, заданного pen.

См. также fillPath() и Рисование.

bool QPainter::testRenderHint(QPainter::RenderHint hint) const

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

Данная функция была введена в Qt 4.3.

См. также renderHints() и setRenderHint().

const QTransform &QPainter::transform() const

Псевдоним для worldTransform(). Возвращает матрицу преобразования мира.

См. также setTransform() и worldTransform().

void QPainter::translate(const QPointF &offset)

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

См. также setWorldTransform() и Преобразования координат.

void QPainter::translate(const QPoint &offset)

Это перегруженный метод.

Перемещает систему координат на заданный offset.

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

Это перегруженный метод.

Перемещает систему координат на вектор (dx, dy).

bool QPainter::viewTransformEnabled() const

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

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

QRect QPainter::viewport() const

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

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

QRect QPainter::window() const

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

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

bool QPainter::worldMatrixEnabled() const

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

Данная функция была введена в Qt 4.2.

См. также setWorldMatrixEnabled(), worldTransform() и Система координат.

const QTransform &QPainter::worldTransform() const

Возвращает матрицу преобразования мира.

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

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qpainter.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API