Ball-Simulator
/
painter.py
44 строки · 1.5 Кб
1from PyQt5 import QtCore, QtGui, QtWidgets2
3
4class PaintBoard(QtWidgets.QFrame):5
6def setBoard(self, board):7self.board = board8
9def paintEvent(self, event):10qp = QtGui.QPainter()11qp.begin(self)12self.drawTrackBalls(qp)13self.drawBall(qp)14qp.end()15
16def drawBall(self, qp):17for ball in self.board.balls:18color = (ball.color[0], ball.color[1], ball.color[2], ball.color[3])19self.setPencil(qp, color, 5)20qp.setBrush(QtGui.QColor.fromRgb(ball.color[0], ball.color[1], ball.color[2], ball.color[3]))21qp.drawEllipse(ball.coords[0] - ball.radius, self.size().height() - ball.coords[1] - ball.radius,22ball.radius * 2, ball.radius * 2)23
24def drawTrackBalls(self, qp):25for ball in self.board.balls:26color = (ball.color[0], ball.color[1], ball.color[2], ball.color[3])27self.setPencil(qp, color, 2)28
29for i in range(len(ball.track) - 1):30startX = ball.track[i][0]31startY = ball.track[i][1]32endX = ball.track[i + 1][0]33endY = ball.track[i + 1][1]34qp.drawLine(startX, self.size().height() - startY, endX, self.size().height() - endY)35
36@staticmethod37def setPencil(qp, color, thickness):38color = QtGui.QColor.fromRgb(color[0], color[1], color[2], color[3])39pen = QtGui.QPen(color, thickness, QtCore.Qt.SolidLine)40qp.setPen(pen)41
42
43if __name__ == "__main__":44print('Module for Ball Simulator')45