Чем дольше я смотрю на код, тем меньше я его понимаю, но тем смешнее становится. В одном случае QPainter рисует круги, в другом - нет.
Моя проблема в том, что в случае успеха QPainter не рисует. Если, с другой стороны, он не был успешным, он делает ничью. Чего я действительно хочу добиться, так это менять цвет в зависимости от состояния. Этот довольно уродливый код для иллюстрации. Перемещение QP.begin () вне цикла или наличие только одного drawEllipse () в конце вне предложения if не имеет никакого значения.
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()
Может кто-нибудь сказать мне, почему в одном случае эллипс на самом деле окрашен, а в другом - нет?
Вывод:
...
Еще нет
Еще нет
Еще нет
Еще нет
Еще нет
* 1021 успех *
* 1022 успех *
* 1023 К успеху *
* 1024 успех *
* 1025 успех *
...
Не имеет значения, был ли эллипс нарисован ранее или нет. В случае, если я комментирую drawEllipse () в случае «еще нет», круг не рисуется.