私はメトロ(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 と色が常に出力されます。変更されていません(同じ長方形も再度ペイントしているためだと思います)。
誰でも私を助けることができますか?