快捷搜索:  汽车  科技

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(1)

声明

本文由本人翻译自Qt官方文档,并进行相关格式化和排版工作。

由于昨天的排版效果在手机上显得很乱,所以今天全部改为代码块显示。

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(2)

drawPicture

void 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。

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(3)

drawPie

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

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(4)

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定义的饼图。

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(5)

drawPixmap

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。

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(6)

drawPoint

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中的点。

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(7)

drawPolygon

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

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(8)

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定义的多边形。

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(9)

drawPolyline

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定义的折线。

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(10)

drawRect

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

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(11)

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。

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(12)

drawRoundedRect

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

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(13)

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中引入。

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(14)

drawStaticText

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

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(15)

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

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(16)

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()。

qpainter暂停绘制(QPainter类中文参考文档-成员函数第二讲)(17)

猜您喜欢: