How to use QPainter: Difference between revisions
No edit summary |
(Corrected Layout after Wiki Conversion) |
||
Line 1: | Line 1: | ||
[[Category: | [[Category:HowTo]] | ||
[[Category:Snippets]] | |||
[[Category:Tutorial]] | |||
[[Category:Learning]] | |||
__NOEDITSECTION__ | |||
<div style="float:left;padding:14px;">__TOC__</div> | |||
== Introduction == | == Introduction == | ||
QPainter provides standard functions to draw points, lines, ellipses, arcs, | {{DocLink|QPainter}} provides standard functions to draw points, lines, ellipses, arcs, Bézier curves, and other primitives. More complex painting operations include support for polygons and vector paths, allowing detailed drawings to be prepared in advance and drawn using a single function call. Text can also be painted directly with a painter or incorporated in a path for later use. | ||
Qt's painting system also provides a number of features to improve overall rendering quality, including alpha blending, Porter-Duff composition modes, anti-aliasing, and linear, radial and conical gradient fills. | Qt's painting system also provides a number of features to improve overall rendering quality, including alpha blending, [http://de.wikipedia.org/wiki/Porter-Duff_Composition Porter-Duff] composition modes, anti-aliasing, and linear, radial and conical gradient fills. | ||
== First steps == | == First steps == | ||
'''IMPORTANT!''' QPainter can paint on QWidget only in < | '''IMPORTANT!''' QPainter can paint on QWidget only in <tt>paintEvent(QPaintEvent*)</tt>. | ||
Sample code: | |||
<code> | <code> | ||
void paintEvent(QPaintEvent | void paintEvent(QPaintEvent*) | ||
{ | { | ||
QPainter | QPainter painter(this); | ||
QLineF line(10.0, 80.0, 90.0, 20.0); | QLineF line(10.0, 80.0, 90.0, 20.0); | ||
painter.drawLine(line); | |||
} | } | ||
</code> | </code> | ||
This snippet will draw black line on widget. Now we know how to create QPainter object and | This snippet will draw black line on the widget. Now we know how to create QPainter object and draw on widgets. But this isn't only supported drawing context. It is also possible to draw on {{DocLink|QPrinter}}, {{DocLink|QPicture}}, {{DocLink|QPixmap}}, {{DocLink|QBitmap}}, {{DocLink|QImage}}, {{DocLink|QGLPixelBuffer}}. | ||
== QPen and QBrush == | |||
Pens and brushes are fundamental tools for graphic programming with Qt. Without them, you can't do anything. Further information is available at {{DocLink|QPen}} and {{DocLink|QBrush}}. |
Revision as of 01:29, 2 March 2015
Introduction
QPainter provides standard functions to draw points, lines, ellipses, arcs, Bézier curves, and other primitives. More complex painting operations include support for polygons and vector paths, allowing detailed drawings to be prepared in advance and drawn using a single function call. Text can also be painted directly with a painter or incorporated in a path for later use.
Qt's painting system also provides a number of features to improve overall rendering quality, including alpha blending, Porter-Duff composition modes, anti-aliasing, and linear, radial and conical gradient fills.
First steps
IMPORTANT! QPainter can paint on QWidget only in paintEvent(QPaintEvent*).
Sample code:
void paintEvent(QPaintEvent*)
{
QPainter painter(this);
QLineF line(10.0, 80.0, 90.0, 20.0);
painter.drawLine(line);
}
This snippet will draw black line on the widget. Now we know how to create QPainter object and draw on widgets. But this isn't only supported drawing context. It is also possible to draw on QPrinter, QPicture, QPixmap, QBitmap, QImage, QGLPixelBuffer.
QPen and QBrush
Pens and brushes are fundamental tools for graphic programming with Qt. Without them, you can't do anything. Further information is available at QPen and QBrush.