PaintEvent触发了几次我的cod

2024-06-28 10:56:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我不明白为什么PaintEvent会执行我的代码三次以上。。。为什么和在哪里它被初始化了这么多次?真的要重画这么多次吗?为什么

def dispTabs(self):         
    self.w = MyPopup1()
    self.ui.tabWidget.addTab(self.w, 'Test')


class MyPopup1(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self)   
        print 'ok'

    def paintEvent(self, event): 
        qp = QtGui.QPainter()
        qp.begin(self)
        self.drawRectangles(qp)
        qp.end()

    def drawRectangles(self, qp):
        print 'ok 2'
        color = QtGui.QColor(0, 0, 0)
        color.setNamedColor('#d4d4d4')
        qp.setPen(color)

        qp.setBrush(QtGui.QColor(200, 0, 0))
        qp.drawRect(10, 15, 90, 60)

输出:

ok
ok2
ok2
ok2

五月晚些时候增加了更多的“ok2”


Tags: 代码selfinitdefokcolorprintqp
1条回答
网友
1楼 · 发布于 2024-06-28 10:56:35

每次需要重新绘制GUI时都会调用paintEvent方法,例如,当您第一次显示小部件时,当您移动小部件时,当您将鼠标悬停在小部件上时,都会多次调用该方法。XEvent方法不应直接调用,而是由Qt处理的事件调用,即,Qt决定何时需要调用它,在这种情况下,Qt分析何时需要重新绘制

相关问题 更多 >