Beispiel #1
0
    def __init__(self):
        super(Widget, self).__init__()

        self.timer = Timer()
        self.start_btn = QtGui.QPushButton("Start/Stop", self)
        self.agents = []
        self.info = InfoWidget.Info(self, 900, 50)

        self.init()
Beispiel #2
0
class Widget (QtGui.QWidget):
    def __init__(self):
        super(Widget, self).__init__()

        self.timer = Timer()
        self.start_btn = QtGui.QPushButton("Start/Stop", self)
        self.agents = []
        self.info = InfoWidget.Info(self, 900, 50)

        self.init()

    def init(self):
        self.setWindowTitle("Gravity")
        rect = QtCore.QRect(Globals.objects_data["widget_x"], Globals.objects_data["widget_y"],
                            Globals.objects_data["widget_width"], Globals.objects_data["widget_height"])
        self.setGeometry(rect)

        self.start_btn.resize(100, 20)
        self.start_btn.move(20, 20)
        self.start_btn.show()

        self.start_btn.clicked.connect(self.timer_change_status)
        self.timer.timeout.connect(self.updateAgents)

        self.show()

    def timer_change_status(self):
        if self.timer.isActive():
            self.timer.stop()
            self.info.setEditActive(True)
        else:
            self.info.setEditActive(False)
            self.timer.start()

    def setAgents(self, agents):
        self.agents = agents

    def updateAgents(self):
        if self.timer.isActive():
            self.agents[0].update(self.agents[1])
            self.agents[1].update(self.agents[0])

            self.info.formUpdate()
            self.repaint()

    def paintEvent(self, e):

        qp = QtGui.QPainter()
        qp.begin(self)
        self.drawCircles(qp)
        qp.end()

    def drawCircles(self, qp):

        brush = QtGui.QBrush(QtCore.Qt.SolidPattern)
        qp.setBrush(brush)

        ag1 = self.agents[0]
        ag2 = self.agents[1]

        qp.drawEllipse(QtCore.QPoint(ag1.get_x(), ag1.get_y()), ag1.get_mass(), ag1.get_mass())
        qp.drawEllipse(QtCore.QPoint(ag2.get_x(), ag2.get_y()), ag2.get_mass(), ag2.get_mass())