0
我有一個程序,從硬盤驅動器加載一個文件,並指示繪製幾個50x50像素的正方形。我也有兩個ComboBox
ES這應該對呈現的正方形產生影響。基本上,兩個ComboBox
es給文件夾和文件名稱。pyQt窗口不更新,直到我改變窗口
每次我打電話給ComboBox
,我都可以看到我稱之爲繪畫事件,並且基於選擇來更新用於繪製瓷磚的說明。但是,直到我切換到另一個窗口,然後回到原來的窗口,顯示的方塊纔會更新。
下面是我的paintEvent look
def paintEvent(self,event):
self.updateButtons()
self.updateNameCombo()
qp = QtGui.QPainter()
qp.begin(self)
self.paintTiles(qp)
qp.end()
return
updateButton
被用來放置PushButton
和ComboBox
屏幕.
UpdateNameComobo is used to update one of the comboBoxes and
painTiles``的右側是用來在屏幕上繪製的正方形。
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)
那麼,什麼是阻止瓷磚的繪圖?