【发布时间】:2011-09-20 15:42:01
【问题描述】:
我盯着代码看的时间越长,我对它的理解就越少,但它变得越有趣。在一种情况下,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(),则不会绘制圆。
【问题讨论】: