绘制文本
可以在指定位置绘制文本,绘制文本时,通常需要先用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)方法设置静态文本的宽度。
- QStaticText 是静态文本类,
-
绘制文本的方法中,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