我有这个代码:
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() 经常被调用。