У меня есть этот код:Почему QPainter очищает виджет каждый раз, когда я его использую?
def paintEvent(self, paintEvent):
self._painter.begin(self)
try:
while True:
color, rectangle = self._paint_queue.popleft()
self._painter.fillRect(rectangle, color)
except IndexError:
pass
finally:
self._painter.end()
def drawInstruction(self, ptr, instruction):
rectangle = QtCore.QRect(
(ptr % self.cols)*CELL_SIZE,
math.floor(ptr/float(self.cols))*CELL_SIZE,
CELL_SIZE,
CELL_SIZE)
self._paint_queue.append((opcode2color[instruction.opcode],
rectangle))
self.update()
И каждый раз, когда я называю drawInstruction(), все, что было уже нарисованный очищается. Остается только новый прямоугольник.
И перекрашивать все каждый раз, когда я называю drawInstruction(), не является решением, потому что drawInstruction() вызывается очень часто.