我不明白为什么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”
每次需要重新绘制GUI时都会调用paintEvent方法,例如,当您第一次显示小部件时,当您移动小部件时,当您将鼠标悬停在小部件上时,都会多次调用该方法。XEvent方法不应直接调用,而是由Qt处理的事件调用,即,Qt决定何时需要调用它,在这种情况下,Qt分析何时需要重新绘制
相关问题 更多 >
编程相关推荐