我正在尝试使用 Metro (Windows 8) 样式的 Python 桌面应用程序,因此可以单击矩形表来执行某些操作。
我像这样生成矩形表(MyIcon):
for sub_rectx in xrange(4):
for sub_recty in xrange(3):
tmp = MyIcon(sub_rectx*322, sub_recty*192, 300, 170, sub_recty+3*sub_rectx + 1, parent=parent)
我有我的班级,基本上是一个带有 id 的矩形:
class MyIcon(MyPanel):
def __init__(self, x, y, width, height, ide, parent=None):
super(MyPanel, self).__init__(parent)
QtGui.QGraphicsRectItem.__init__(self, x, y, width, height, parent)
self.ide = ide
def mousePressEvent(self, event):
self.setBrush(QtGui.QColor(255, 255, 255))
print self.ide
此代码在我第一次单击矩形时工作正常,打印正确的 id 并更改正确矩形的颜色,但是下次我单击任何矩形时,它总是打印我单击的第一个矩形的 id 和颜色没有改变(我假设是因为它也再次绘制了相同的矩形)。
谁能帮我?