 <p>You need to start <code>app.MainLoop()</code> before the frames will show. In your code all the frames are created before <code>MainLoop()</code> is run, that's why the frames are all displayed at once. Rather than creating multiple frames, create multiple panels, just hide the previous ones.</p> <p>Also to control the creation of frames, try returning something, in the event handlers before <code>destroy()</code> function call. And in the main frame check for the return to create the next panel.</p>