QPainter drawText 居中
时间: 2023-07-09 13:49:19 浏览: 280
使用QPainter画一个3D正方体
要在QPainter中将文本居中对齐,可以使用QFontMetrics类来获取文本的宽度和高度,然后计算出文本的位置。
下面是一个示例代码:
```python
from PyQt5.QtGui import QPainter, QFontMetrics
# 在paintEvent函数中调用
def paintEvent(self, event):
qp = QPainter()
qp.begin(self)
# 设置字体
font = self.font()
qp.setFont(font)
# 获取字体的度量
metrics = QFontMetrics(font)
# 计算文本的位置
text_width = metrics.width("Hello World")
text_height = metrics.height()
x = (self.width() - text_width) / 2
y = (self.height() - text_height) / 2 + metrics.ascent()
# 绘制文本
qp.drawText(x, y, "Hello World")
qp.end()
```
注意,这里使用了`metrics.ascent()`来计算文本的上半部分的高度,因为文本是基于基线而不是顶部对齐的。
阅读全文