qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)
qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)
声明本文由本人翻译自Qt官方文档,并进行相关格式化和排版工作。
由于昨天的排版效果在手机上显得很乱,所以今天全部改为代码块显示。
drawPicturevoid QPainter::drawPicture(const QPointF &point const QPicture &picture)
在给定点point回放给定图片pciture。
QPicture类是一个可以记录和重放QPainter命令的绘画设备。图片以平台无关的格式将Painter命令序列化到IO设备。
可以在小部件或像素图上绘制的所有内容也可以存储在图片中。
当以point = QPoint(0 0)调用时,此函数与QPicture::play()完全相同。
另请参见QPicture::play()。
QPicture picture;
QPointF point(10.0 20.0)
picture.load("drawing.pic");
QPainter painter(this);
painter.drawPicture(0 0 picture);
void QPainter::drawPicture(int x int y const QPicture &picture)
这是一个重载函数。
在给定点(x y)回放给定图片pciture。
void QPainter::drawPicture(const QPoint &point const QPicture &picture)
这是一个重载函数。
在给定点point回放给定图片pciture。
void QPainter::drawPie(const QRectF &rectangle int startAngle int spanAngle)
绘制由给定矩形rectangle,起始角度startAngle和夹角spanAngle定义的饼图。
饼图被当前的brush()填充。
必须以度的1/16来指定startAngle和spanAngle,即一个完整的圆等于5760(16 * 360)。
角度的正值表示逆时针方向,而负值表示顺时针方向。 零度位于3点钟位置。
另请参见drawEllipse() drawChord()和“坐标系”。
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 QPainter::drawPie(int x int y int width int height int startAngle int spanAngle)
这是一个重载函数。
绘制以(x y)为起点,宽度为width,高度为height的矩形定义的饼图,该饼图的起始角度为startAngle,夹角为spanAngle。
void QPainter::drawPie(const QRect &rectangle int startAngle int spanAngle)
这是一个重载函数。
绘制由给定矩形rectangle、起始角度startAngle和夹角spanAngle定义的饼图。
void QPainter::drawPixmap(const QRectF &target const QPixmap &pixmap const QRectF &source)
将给定像素图pixmap的矩形部分source绘制到绘制设备中的目标矩形target中。
注意:如果图像和矩形尺寸不相同,则将图像缩放以适合矩形。
注意:有关如何受QImage::devicePixelRatio()影响的信息,请参见“绘制高分辨率版本的Pixmap和Images”。
如果pixmap是一个QBitmap,它是用笔颜色“设置”的位绘制的。
如果backgroundMode是Qt::OpaqueMode,“unset”位使用背景笔刷的颜色绘制;
如果backgroundMode是Qt::TransparentMode,“unset”位是透明的。
不支持使用渐变色或纹理颜色绘制位图。
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);
另请参见drawImage()和QPixmap::devicePixelRatio()。
void QPainter::drawPixmap(const QRect &target const QPixmap &pixmap const QRect &source)
这是一个重载函数。
将给定像素图pixmap的矩形部分source绘制到绘制设备中的目标矩形target中。
注意:如果图像和矩形尺寸不相同,则将图像缩放以适合矩形。
void QPainter::drawPixmap(int x int y int w int h const QPixmap &pixmap int sx int sy int sw int sh)
这是一个重载函数。
在点(x y)处绘制给定像素图中以(sx sy)为原点,宽度为sw、高度为sh的矩形部分,绘制的宽度为w,高度为h。
如果sw或sh等于零,则使用像素图的宽度/高度,并通过偏移sx / sy进行调整;
void QPainter::drawPixmap(int x int y const QPixmap &pixmap int sx int sy int sw int sh)
这是一个重载函数。
以(x y)为起点,通过将像素图pixmap的一部分复制到绘图设备中绘制像素图。
(x y)指要在其上绘制的绘画设备中的左上点。
(sx sy)指要绘制的像素图的左上角。 默认值为(0 0)。
(sw sh)指要绘制的像素图的尺寸。 默认值(0 0)(和负数)表示一直到像素图的右下角。
void QPainter::drawPixmap(const QPointF &point const QPixmap &pixmap const QRectF &source)
这是一个重载函数。
以点point为起点,绘制给定像素图pixmap的矩形部分source。
void QPainter::drawPixmap(const QPoint &point const QPixmap &pixmap const QRect &source)
这是一个重载函数。
以点point为起点,绘制给定像素图pixmap的矩形部分source。
void QPainter::drawPixmap(const QPointF &point const QPixmap &pixmap)
这是一个重载函数。
以点point为起点,绘制给定像素图pixmap。
void QPainter::drawPixmap(const QPoint &point const QPixmap &pixmap)
这是一个重载函数。
以点point为起点,绘制给定像素图pixmap。
void QPainter::drawPixmap(int x int y const QPixmap &pixmap)
这是一个重载函数。
以点(x y)为起点,绘制给定像素图pixmap。
void QPainter::drawPixmap(const QRect &rectangle const QPixmap &pixmap)
这是一个重载函数。
将给定的像素图pixmap绘制到给定的矩形中。
注意:如果图像和矩形尺寸不相同,则将图像缩放以适合矩形。
void QPainter::drawPixmap(int x int y int width int height const QPixmap &pixmap)
这是一个重载函数。
以点(x y)为起点,将给定的像素图pixmap绘制到的宽度为width和高度为height的矩形中。
void QPainter::drawPixmapFragments(const PixmapFragment *fragments int fragmentCount const QPixmap &pixmap PixmapFragmentHints hints = PixmapFragmentHints())
此函数用于在具有不同比例、旋转和不透明度的多个位置绘制pixmap或pixmap的子矩形。
fragments是fragmentCount元素的数组,这些元素指定用于绘制每个pixmap片段的参数。
hints参数可用于传递图形提示。
此函数可能比多次调用drawPixmap()更快,因为后端可以优化状态更改。
此函数在qt4.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)
使用当前笔的颜色绘制数组points中的前pointCount个点。
另请参见“坐标系”。
void QPainter::drawPoints(const QPolygonF &points)
这是一个重载函数。
绘制向量points中的点。
void QPainter::drawPoints(const QPoint *points int pointCount)
这是一个重载函数。
使用当前笔的颜色绘制数组points中的前pointCount个点。
void QPainter::drawPoints(const QPolygon &points)
这是一个重载函数。
绘制向量points中的点。
void QPainter::drawPolygon(const QPointF *points int pointCount Qt::FillRule fillRule = Qt::OddEvenFill)
使用当前画笔和笔刷绘制由数组points的前pointCount个点定义的多边形。
第一个点隐式连接到最后一个点,并且多边形被当前的brush()填充。
如果fillRule为Qt::WindingFill,则使用缠绕填充算法填充多边形。
如果fillRule为Qt::OddEvenFill,则使用奇偶填充算法填充多边形。
有关这些填充规则的详细说明,请参见Qt::FillRule。
另请参见drawConvexPolygon() drawPolyline()和“坐标系“。
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 QPainter::drawPolygon(const QPolygonF &points Qt::FillRule fillRule = Qt::OddEvenFill)
这是一个重载函数。
使用填充规则fillRule绘制由给定points定义的多边形。
void QPainter::drawPolygon(const QPoint *points int pointCount Qt::FillRule fillRule = Qt::OddEvenFill)
这是一个重载函数。
绘制由数组points的前pointCount个点定义的多边形。
void QPainter::drawPolygon(const QPolygon &points Qt::FillRule fillRule = Qt::OddEvenFill)
这是一个重载函数。
使用填充规则fillRule绘制由给定points定义的多边形。
void QPainter::drawPolyline(const QPointF *points int pointCount)
使用当前笔绘制由数组points的前pointCount个点定义的折线。
请注意,与drawPolygon()函数不同,最后一点没有连接到第一个点,也没有填充折线。
另请参见drawLines() 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);
void QPainter::drawPolyline(const QPolygonF &points)
这是一个重载函数。
使用当前笔绘制由给定points定义的折线。
void QPainter::drawPolyline(const QPoint *points int pointCount)
这是一个重载函数。
使用当前笔绘制数组points中的前pointCount个点定义的折线。
void QPainter::drawPolyline(const QPolygon &points)
这是一个重载函数。
使用当前笔绘制由给定points定义的折线。
void QPainter::drawRect(const QRectF &rectangle)
使用当前的画笔和画刷绘制矩形rectangle。
填充矩形的大小为square.size()。 描边矩形的大小为rectangle.size()加上笔的宽度。
另请参见drawRects() drawPolygon()和“坐标系”。
QRectF rectangle(10.0 20.0 80.0 60.0);
QPainter painter(this);
painter.drawRect(rectangle);
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)
使用当前画笔绘制给定rectangles数组中的的前rectCount个矩形。
另请参见drawRect()。
void QPainter::drawRects(const QVector<QRectF> &rectangles)
这是一个重载函数。
使用当前画笔绘制给定的rectangles。
void QPainter::drawRects(const QRect *rectangles int rectCount)
这是一个重载函数。
使用当前画笔绘制给定rectangles数组中的的前rectCount个矩形。
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()加上笔的宽度。
此函数在Qt 4.4中引入。
另请参见drawRect()和QPen。
QRectF rectangle(10.0 20.0 80.0 60.0);
QPainter painter(this);
painter.drawRoundedRect(rectangle 20.0 15.0);
void QPainter::drawRoundedRect(int x int y int w int h qreal xRadius qreal yRadius Qt::SizeMode mode = Qt::AbsoluteSize)
这是一个重载函数。
绘制以(x y)为左上角,宽为w,高为h的圆角矩形。
xRadius和yRadius参数指定椭圆的半径,该半径定义了圆角矩形的角。
此函数在Qt 4.4中引入。
void QPainter::drawRoundedRect(const QRect &rect qreal xRadius qreal yRadius Qt::SizeMode mode = Qt::AbsoluteSize)
这是一个重载函数。
绘制具有圆角的给定矩形rect。
xRadius和yRadius参数指定椭圆的半径,该半径定义了圆角矩形的角。
此函数在Qt 4.4中引入。
void QPainter::drawStaticText(const QPointF &topLeftPosition const QStaticText &staticText)
在给定的topLeftPosition处绘制给定的静态文本staticText。
将使用字体和在painter上设置的变换来绘制文本。
如果在绘画板上设置的字体和/或变换与用于初始化QStaticText的布局的字体和/或变换不同,则必须重新计算布局。
使用QStaticText::prepare()初始化staticText,其字体和转换将在以后进行绘制。
如果topLeftPosition与staticText初始化时或上一次绘制时不相同,那么在将文本转换到新位置时会有一些开销。
注意:如果painter的变换不是仿射的,则将使用对drawText()的常规调用来绘制staticText,从而失去任何可能改善性能的可能性。
注意:y位置用作字体的顶部。
此功能在Qt 4.7中引入。
另请参见QStaticText。
void QPainter::drawStaticText(const QPoint &topLeftPosition const QStaticText &staticText)
这是一个重载函数。
在给定的topLeftPosition处绘制给定的静态文本staticText。
注意:y位置用作字体的顶部。
此功能在Qt 4.7中引入。
void QPainter::drawStaticText(int left int top const QStaticText &staticText)
这是一个重载函数。
在坐标(left top)处绘制静态文本staticText。
注意:y位置用作字体的顶部。
此功能在Qt 4.7中引入。
drawText
void QPainter::drawText(const QPointF &position const QString &text)
从给定位置position开始,以当前定义的文本方向绘制给定文本text。
此函数不处理换行符(\n),因为它不能将文本分成多行,也不能显示换行符。
如果要绘制带有换行符的多行文本,或者希望对文本进行换行,请使用QPainter::drawText()其他采用矩形定义的重载。
默认情况下,QPainter绘制抗锯齿的文本。
注意:y位置用作字体的基线。
另请参见setFont()和setPen()。
void QPainter::drawText(const QPoint &position const QString &text)
这是一个重载函数。
从给定位置position开始,以当前定义的文本方向绘制给定文本text。
默认情况下,QPainter绘制抗锯齿的文本。
注意:y位置用作字体的基线。
另请参见setFont()和setPen()。
void QPainter::drawText(int x int y const QString &text)
这是一个重载函数。
从给定位置(x y)处开始,以当前定义的文本方向绘制给定文本text。
默认情况下,QPainter绘制抗锯齿的文本。
注意:y位置用作字体的基线。
另请参见setFont()和setPen()。
void QPainter::drawText(const QRectF &rectangle int flags const QString &text QRectF *boundingRect = Q_NULLPTR)
这是一个重载函数。
在给定的矩形rectangle内绘制给定的文本text。矩形以及对齐标记定义了文本的锚点。
QPainter painter(this);
painter.drawText(rect Qt::AlignCenter tr("Qt\nProject"));
boundingRect(如果不是空的话)被设置为包围文本的边框。
例如,在下面的例子中,点划线表示由函数计算的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位置用作字体的基线。
另请参见Qt::AlignmentFlag Qt::TextFlag boundingRect()和layoutDirection()。
void QPainter::drawText(const QRect &rectangle int flags const QString &text QRect *boundingRect = Q_NULLPTR)
这是一个重载函数。
根据指定的标志flags在给定的矩形rectangle内绘制给定的文本text。
默认情况下,QPainter绘制抗锯齿的文本。
注意:y坐标用作字体的顶部。
另请参见setFont()和setPen()。
void QPainter::drawText(int x int y int width int height int flags const QString &text QRect *boundingRect = Q_NULLPTR)
这是一个重载函数。
在(x y)为原点,宽度为width,高度为height的矩形内绘制给定的文本text。
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控制其位置和方向的指定矩形rectangle中绘制给定文本text。
默认情况下,QPainter绘制抗锯齿的文本。
注意:矩形的y坐标用作字体的顶部。
另请参见setFont()和setPen()。