请问在PTQT5中,为何在我定义的类中没有被调用的方法会被执行?(附上简洁代码如下)
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter, QPen
from PyQt5.QtCore import Qt
import sys
class xample(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 280, 270)
self.setWindowTitle('Pen styles')
self.show()
def paintEvent(self, e):#这个参数e不知道什么用,但是必须有
qp = QPainter()#创建一个绘图对象的实例
qp.begin(self)#开始绘图
self.drawLines(qp)#调用我编写的绘图方法
qp.end()#结束绘图
def drawLines(self, qp):
pen = QPen(Qt.black, 2, Qt.SolidLine) # 先设置笔的样式
qp.setPen(pen) # 有种插上笔芯的感觉
qp.drawLine(20, 40, 250, 40) # 前两个坐标起点 后两个坐标终点
pen.setStyle(Qt.DashLine)
qp.setPen(pen)
qp.drawLine(20, 80, 250, 80)
pen.setStyle(Qt.DashDotLine)
qp.setPen(pen)
qp.drawLine(20, 120, 250, 120)
pen.setStyle(Qt.DotLine)
qp.setPen(pen)
qp.drawLine(20, 160, 250, 160)
pen.setStyle(Qt.DashDotDotLine)
qp.setPen(pen)
qp.drawLine(20, 200, 250, 200)
pen.setStyle(Qt.CustomDashLine)
pen.setDashPattern([1, 4, 5, 4])
qp.setPen(pen)
qp.drawLine(20, 240, 250, 240)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = xample()
sys.exit(app.exec_())
以上代码执行的功能是绘制几条不同风格的线
我目前没有思路。
请问为什么在我定义的这个类中的paintEvent方法未调用时,仍然可以绘图?