Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Основные функции для формирования графических примитивов




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

 

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)

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

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);

 

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

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

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

 

Вывод хорды в рамках заданного прямоугольника. Заливка образованной фигуры производится с помощью установленной кисти по умолчанию brush(). Параметры startAngle, spanAngle указывают угол начала и окончания дуги и имеют значение в 1/16 долях градуса, т.е. полный круг имеет значение 5760 (16 * 360). Начало отсчета соответствует положению трех часов. Положительные значения указывают направление против часовой стрелки, отрицательные – по часовой.

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);

 

void drawConvexPolygon (const QPointF * points, int pointCount)

void drawConvexPolygon (const QPoint * points, int pointCount)

void drawConvexPolygon (const QPolygonF & polygon)

void drawConvexPolygon (const QPolygon & polygon)

 

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

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);

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)

 

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

QRectF rectangle(10.0, 20.0, 80.0, 60.0);   QPainter painter(this); painter.drawEllipse(rectangle);

 

void drawLine (const QLineF & line)

void drawLine (const QLine & line)

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

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

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

 

Вывод линии с указанными точками.

QLineF line(10.0, 80.0, 90.0, 20.0);   QPainter(this); painter.drawLine(line);

void drawLines (const QLineF * lines, int lineCount)

void drawLines (const QLine * lines, int lineCount)

void drawLines (const QPointF * pointPairs, int lineCount)

void drawLines (const QPoint * pointPairs, int lineCount)

void drawLines (const QVector<QPointF> & pointPairs)

void drawLines (const QVector<QPoint> & pointPairs)

void drawLines (const QVector<QLineF> & lines)

void drawLines (const QVector<QLine> & lines)

Вывод линий из массива или вектора координат.

 

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

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

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

 

Вывод сегмента круга в рамках заданного прямоугольника. Заливка образованной фигуры производится с помощью установленной кисти по умолчанию brush(). Параметры startAngle, spanAngle указывают угол начала и окончания дуги и имеют значение в 1/16 долях градуса, т.е. полный круг имеет значение 5760 (16 * 360). Начало отсчета соответствует положению трех часов. Положительные значения указывают направление против часовой стрелки, отрицательные – по часовой.

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);

 

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 QPoint * points, int pointCount)

void drawPoints (const QPolygonF & points)

void drawPoints (const QPolygon & points)

Вывод точки из массива, либо заданных как вершины многоугольника класса QPolygon.

 

void drawPolygon (const QPointF * points, int pointCount,

Qt::FillRule fillRule = Qt::OddEvenFill)

void drawPolygon (const QPoint * points, int pointCount,

Qt::FillRule fillRule = Qt::OddEvenFill)

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

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

Вывод многоугольника по заданному массиву вершин. Возможно указание алгоритма заливки через параметр fillRule.

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);

void drawPolyline (const QPointF * points, int pointCount)

void drawPolyline (const QPoint * points, int pointCount)

void drawPolyline (const QPolygonF & points)

void drawPolyline (const QPolygon & points)

 

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

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);

 

 

void drawRect (const QRectF & rectangle)

void drawRect (const QRect & rectangle)

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

 

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

QRectF rectangle(10.0, 20.0, 80.0, 60.0);   QPainter painter(this); painter.drawRect(rectangle);

 

 

void drawRects (const QRectF * rectangles, int rectCount)

void drawRects (const QRect * rectangles, int rectCount)

void drawRects (const QVector<QRectF> & rectangles)

void drawRects (const QVector<QRect> & rectangles)

 

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

 

 

void drawRoundedRect (const QRectF & rect, qreal xRadius, qreal yRadius,

Qt::SizeMode mode = Qt::AbsoluteSize)

void drawRoundedRect (const QRect & 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 = Qt::AbsoluteSize)

 

Вывод прямоугольника со скругленными углами с заданными координатами левого верхнего угла и размерами. xRadius, yRadius определяют радиусы эллипса, вписываемого в углы. Если установлен режим скругления Qt::RelativeSize, xRadius, yRadius определяются в процентах от половины ширины/высоты прямоугольника.

QRectF rectangle(10.0, 20.0, 80.0, 60.0);   QPainter painter(this); painter.drawRoundedRect(rectangle, 20.0, 15.0);

 

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

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

void drawText (const QRectF & rectangle, int flags, const QString & text,

QRectF * boundingRect = 0)

void drawText (const QRect & rectangle, int flags, const QString & text,

QRect * boundingRect = 0)

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

Вывод текста text начиная с точки, заданной координатами.

 

 

void drawText (int x, int y, int width, int height, int flags, const QString & text,

QRect * boundingRect = 0)

void drawText (const QRectF & rectangle, const QString & text,

const QTextOption & option = QTextOption())

 

Вывод текста text, вписывая в прямоугольник, заданный координатами и размерами. Имеется возможность указать режим выравнивания текста внутри прямоугольника.

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

 

 

void eraseRect (const QRectF & rectangle)

void eraseRect (const QRect & rectangle)

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

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

 

 

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

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 (const QRect & rectangle, const QBrush & brush)

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

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

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

void fillRect (int x, int y, int width, int height, 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)

Вывод залитого прямоугольника, режим заливки определяется указанной кистью brush или цветом color.

 




Поделиться с друзьями:


Дата добавления: 2014-11-25; Просмотров: 749; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.