Drawing and moving flowers
Let's start with your naming.  flower is supposed to be a list, right?  Let's make it plural, then.

def moving(flowers):
    for i in range(len(flowers)):
        while flowers[i].y() &lt; risar.maxY:
            for p in flowers: #p is position
                p.setPos(p.x(), p.y()+5)


Next, notice that you don't actually care about i; you just want to operate on every single flower.

def moving(flowers):
    for f in flowers:
        while f.y() &lt; risar.maxY:
            for p in flowers: #p is position
                p.setPos(p.x(), p.y()+5)


Hmm… not only are there nested loops, but two of them iterate over all flowers.  What's going on?  I think you're trying to move all flowers "simultaneously" until all of them have their y-coordinate ≥ risar.maxY.  Then just say this, which I think is a bit more expressive:

def moving(flowers):
    while any([f.y() &lt; risar.maxY for f in flowers]):
        for flower in flowers:
            flower.setPos(flower.x(), flower.y() + 5)