m0_51507696 2022-04-01 07:13 采纳率: 100%
浏览 21
已结题

请问在PTQT5中,为何在我定义的类中没有被调用的方法会被执行?(附上简洁代码)

请问在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方法未调用时,仍然可以绘图?

  • 写回答

1条回答 默认 最新

  • 於黾 2022-04-01 10:34
    关注

    因为你继承了QWidget
    而paintEvent是重写了父类的方法
    在窗体需要绘制时,这个方法就会被调用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月9日
  • 已采纳回答 4月1日
  • 修改了问题 4月1日
  • 修改了问题 4月1日
  • 展开全部

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题