the way the ui callbacks work is that while the callback is running, you will not see any updates to the ui. So, if you have time.sleeps, the whole ui system pauses until the method exits, and you really only see the final item.

decorating the method with ui.in_background is another approach and using time.sleep.

another approach would be to use ui.animate with a duration and completion.