QPainter对小部件和其他绘图设备执行低级绘制。它可以绘制从简单线条到复杂形状的所有内容。
该绘画在paintEvent()方法中完成。绘制代码放在QPainter对象的begin()和end()方法之间。它在小部件和其他绘图设备上执行低级绘制。
我们首先在窗口的客户区域上绘制一些Unicode文本。
import sys
from PyQt5.Qt import QWidget, QApplication
from PyQt5.QtGui import QPainter, QColor, QFont
from PyQt5.QtCore import Qt
#例子类
class Example(QWidget):
def __init__(self):
'''
构造函数
'''
super().__init__()
self.initUI()
def initUI(self):
'''
界面设计
'''
self.text = "列夫托尔斯泰"
self.setGeometry(300, 300, 280, 170)
self.setWindowTitle('Drawing text')
self.show()
def paintEvent(self, event):
'''
画图事件
'''
qp = QPainter()
qp.begin(self)
self.drawText(event, qp)
qp.end()
def drawText(self, event, qp):
qp.setPen(QColor(0,0,255))
qp.setFont(QFont('Decorative', 10))
qp.drawText(event.rect(), Qt.AlignCenter, self.text)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())