135-QPainter和Graphics/View绘图-QPainter绘图- 绘制文本

本文介绍了如何在指定位置使用QPainter类绘制文本,强调了drawStaticText方法的高效性,以及QStaticText类在设置文本格式、宽度和布局中的应用。同时,提到了Qt.TextFormat的不同选项,如Qt.PlainText和Qt.RichText,以及对齐方式如Qt.AlignLeft和Qt.AlignCenter等。
摘要由CSDN通过智能技术生成

绘制文本

可以在指定位置绘制文本,绘制文本时,通常需要先用setFont(QFont)方法设置QPainter的字体。

绘制文本的方法如表所示所绘文本默认是反锯齿的

QPainter绘制文本的方法QPainter绘制文本的方法
drawStaticText(left: int,top: int,staticText: QStaticText)drawText(p:Union[QPointF,QPoint],s: str)
drawStaticText(topLeftPosition: Union[QPointF,QPoint,QPainterPath.Element],staticText:QStaticText)drawText(r: Union[QRectF,QRect],flags: int,text: str,br:Union[QRectF,QRect])
drawText(r:Union[QRectF,QRect],text: str,Qt.Alignment)drawText(p:QPoint,s:str)
drawText(x:int,y:int,w:int,h:int,flags: int,text: str,br:QRect)drawText(x:int,y: int,s:str)
drawText(r: QRect,flags: int,text: str,br: QRect)drawText(p: QPainterPath.Element,s: str)
  • 绘制文本可以用drawStaticText()方法该方法比较快且每次不用重新计算文本的排列位置。

    • QStaticText 是静态文本类,
      • 用QStaticText 类创建静态文本的方法是QStaticText()或 QStaticText(str)。
      • 可以用QStatciText 的 setText(str)方法设置文本
      • 用setTextFormat(Qt.TextFormat)方法设置静态文本的格式参数Qt.TextFormat可取:
        • Qt.PlainText、
        • Qt.RichText、
        • Qt.Autotext
        • Qt.MarkdownText;
      • 用setTextOption(QTextOption)方法设置选项;
      • 用setTextWidth(float)方法设置静态文本的宽度。
  • 绘制文本的方法中,flags 参数可取

    • Qt.AlignLeft
    • Qt.AlignRight
    • Qt.AlignHCenter
    • QtAlignJustify
    • Qt.AlignTop,
    • Qt.AlignBottom
    • Qt.AlignVCenter
    • Qt.AlignCenter
    • Qt.TextSingleLine
    • Qt.TextExpandTabs
    • Qt.TextShowMnemonic
    • QtTextWordWrap
    • 参数r是要绘制文本的矩形范围;
    • 参数 br 是指边界矩形(ounding rectangle),所绘文本应该包含在边界矩形中。
  • 如果所绘制的文本用当前的字体绘制时,给定的矩形范围不合适,可以用boundingRect(···)方法获取边界矩形。获取文本边界矩形的方法如表所示

    获取文本边界矩形的方法返回值的类型
    boundingRect(rect:QRect,flags: int,texti str)QRect
    boundingRect(rect: Union[QRectF,QRect],flags:int,text: str)QRectF
    boundingRect(rect:Union[QRectF,QRect],text: str,Qt.Alignment)QRectF
    boundingRect(x: int,y:int,w:int,h: int,flags: int,text: str)QRect
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

士别三日,当挖目相待

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值