如何在PyQt5中重新绘制特定单元格

2024-10-01 00:14:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Pyqt5中创建Conway的生命游戏,但不确定如何更新我的网格以更改特定单元格的颜色。 我的程序有一个GUI类、board类和一个生命体类。此方法在具有生命形式的类中。我应该在GUI类之外创建另一个paintevent吗?我是否为GUI创建了一些我应该引用的对象(当我对自己说这个方法没有意义,因为为GUI外部引用的GUI创建一个对象似乎是一个糟糕的设计,但是idk)我在下面发布了我的方法,因为我觉得我的问题可能并不复杂,我只是遗漏了一些东西

def paintWhite(self): #LifeForm Class

   screensize = QDesktopWidget().screenGeometry()
    cellwidth = screensize.width()//GLOBAL_N #GlobalN x GlobalN grid
    cellheight = screensize.height()//GLOBAL_N
    paintObject = QPainter()
    paintObject.setPen(QPen(Qt.white, 5, Qt.SolidLine))
    paintObject.setBrush(QColor(255,255,255))
    paintObject.drawRect(cellwidth * self.row, cellheight * self.col, cellwidth,cellheight)

#Seperate Code Snippets

def paintEvent(self,e): #Gui Class
    paintObject = QPainter(self)
    paintObject.setPen(QPen(Qt.black, 5, Qt.SolidLine))
    paintObject.setBrush(QColor(0,0,0))
    n=50
    for i in range(n):
        for j in range(n):
            x = paintObject.drawRect(self.width//n*i, self.height//n*j, self.width//n,self.height//n)

只是颜色没有变化。谢谢你的帮助


Tags: 对象方法self颜色defguiqtwidth