• Отображение генерируемых объектов на лету

    @alz
    #!/usr/bin/env python
    
    import sys
    import random
    from PyQt4 import QtCore, QtGui
    
    WIDTH = 800
    HEIGHT = 600
    
    class DrawExample(QtGui.QWidget):
        def __init__(self):
            super(DrawExample, self).__init__()
            
            self.points = []
            
            self.init_ui()
            
            self.startTimer(0)
        
        def init_ui(self):
            self.setGeometry(300, 300, WIDTH, HEIGHT)
            self.setWindowTitle('Draw')
            self.show()
        
        def timerEvent(self, e):
            if len(self.points) < 10000:
                self.points.append((
                    random.randint(1, WIDTH-1),
                    random.randint(1, HEIGHT-1),
                ))
                self.update()
        
        def paintEvent(self, e):
            qp = QtGui.QPainter()
            qp.begin(self)
            
            color = QtGui.QColor(250, 100, 100)
            qp.setPen(color)
            
            for point in self.points:
                qp.drawEllipse(point[0]-3, point[1]-3, 6, 6)
            
            qp.end()
    
    def main():
        app = QtGui.QApplication(sys.argv)
        ex = DrawExample()
        sys.exit(app.exec_())
    
    if __name__ == '__main__':
        main()
    
    Ответ написан
    5 комментариев