0

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

誰でも私を助けることができますか?

4

1 に答える 1