0

ハードドライブからファイルをロードするプログラムがあり、50x50 ピクセルのいくつかの正方形をペイントするよう指示されています。またComboBox、提示された正方形に影響を与える 2 つの es があります。基本的に、2 つのComboBoxes はフォルダーとファイル名を指定します。

. ComboBox_ ただし、別のウィンドウに切り替えてから元のウィンドウに戻るまで、表示されている四角形は更新されません。

これが私のpaintEvent見た目です

def paintEvent(self,event):
    self.updateButtons()
    self.updateNameCombo()
    qp = QtGui.QPainter()
    qp.begin(self)
    self.paintTiles(qp)
    qp.end()
    return

updateButton画面の右側にPushButtonとを配置するために使用されます。コンボ ボックスの 1 つを更新するために使用され、画面上の正方形を描画するために使用されます。ComboBoxUpdateNameComobopaintTiles

  def paintTiles(self,qp):
        self.loadTileSet()
        width= self.frameSize().width()
        height = self.frameSize().height()
        self.endX = width - 120
        self.endY = width - 25
        x = self.startX
        y = self.startY
        i = self.startI
        while i < len(self.tiles):
            self.handleTile(qp,x,y,self.tiles[i])
            i += 1
            x += 60
            if x >= self.endX - 60:
                x = self.startX
                y += 60
            if y >= self.endY - 60:
                break
        return

loadTileSetハード ドライブからタイル データを読み取るために使用されます。handleTile単一の正方形をペイントするために使用されます。

    def handleTile(self,qp,x,y,tile):
        pen = QtGui.QPen(QtCore.Qt.blue, 1, QtCore.Qt.DotLine)
        for line in tile:
            r,g,b,a = tile[line]
            clr = QtGui.QColor(r,g,b,a)
            pen.setColor(clr)
            qp.setPen(pen)
            pX = x + line[0]
            pY = y + line[1]
            qp.drawPoint(pX,pY)

では、タイルの描画を妨げているのは何ですか?

4

1 に答える 1