我盯着代码看的时间越长,我对它的理解就越少,但它变得越有趣。在一种情况下,QPainter 会绘制圆圈,而在另一种情况下则不会。
我的问题是,如果成功了,QPainter不会绘制。如果,另一方面,它不成功,它确实平局。我真正想要实现的是根据状态改变颜色。这个相当丑陋的代码是为了说明。将 QP.begin() 移到循环之外或最后在 if 子句之外只有一个 drawEllipse() 没有任何区别。
def paintEvent(self, e):
# compute here diameter, offsets, etc. but nothing qt related
for i in xrange(5):
painter = QtGui.QPainter(self)
x_offset += 5
if self.isSuccessful():
print "Successful"
painter.setBrush(QtGui.QColor(0,255,0))
painter.drawEllipse(x_offset, y_offset, diameter, diameter)
else:
print "Not yet"
painter.setBrush(QtGui.QColor(0,0,255))
painter.drawEllipse(x_offset, y_offset, diameter, diameter)
painter.end()
有人能告诉我为什么在一种情况下椭圆实际上是画的,而在另一种情况下却不是?
输出是:
...
尚未 尚未
尚未
尚未 尚未 成功 成功 成功 成功 成功 ...
椭圆之前是否绘制过并不重要。如果我在“尚未”的情况下评论 drawEllipse(),则不会绘制圆圈。