docs: def schedule(self, callback, timeout=100):
          '''Schedule a function to be called repeated time.
  
          This method can be used to perform animations.
          
          **Example**
          
          This is a typical way to perform an animation, just::
          
              from chemlab.graphics.qt import QtViewer
              from chemlab.graphics.renderers import SphereRenderer
              
              v = QtViewer()
              sr = v.add_renderer(SphereRenderer, centers, radii, colors)
               
              def update():
                 # calculate new_positions
                 sr.update_positions(new_positions)
                 v.widget.repaint()
              
              v.schedule(update)
              v.run()
          
          .. note:: remember to call QtViewer.widget.repaint() each
                    once you want to update the display.
          
  
          **Parameters**
          
          callback: function()
              A function that takes no arguments that will be 
              called at intervals.
          timeout: int
              Time in milliseconds between calls of the *callback*
              function.
  
          **Returns**
          a `QTimer`, to stop the animation you can use `Qtimer.stop`
          '''
          timer = QTimer(self)
          timer.timeout.connect(callback)
          timer.start(timeout)
          return timer