0

hi everyone....... i am writing a program where i have 2 ovals and i want my first oval to appear then after 2 seconds the second one...but am failing in doing this.
can anyone help me to do this please. thank you in advance
here is my code

from Tkinter import *
import Tkinter
import time
import thread

frame=Tkinter.Frame()
frame.pack()



canvas =Tkinter.Canvas(frame,bg = 'white',width=500, height=500)
canvas.pack()

def generate():
        
            canvas.create_oval(200,300,210,310) #my first oval
            time.sleep(2)
            canvas.create_oval(200,300,210,310) # my second oval
            
        
                


        
        
        

    
button=Tkinter.Button(frame,fg="blue", text="GENERATE", command=generate).pack()


mainloop()

the problem that i'm having with this is that the computer is waiting for 2 sec then displays both oval but me i want 1 at a time.....

someone please help me in doing this

2
Contributors
2
Replies
3
Views
9 Years
Discussion Span
Last Post by nish88
0

Please use the proper code tags around your code. Don't quote the whole thing or your code tags won't work.

Proper code tags are
[code=python]
your code here

[/code]

Please format your code so it is somewhat readable. Also, since your ovals are equal, how would you know the difference?

This how you might do it:

import Tkinter as tk

def generate():
    oval1()
    frame.after(2000, oval2)

def oval1():
    canvas.create_oval(200, 300, 210, 310, fill='red')

def oval2():
    canvas.create_oval(200, 300, 210, 310, fill='blue')

frame = tk.Frame()
frame.pack()

canvas = tk.Canvas(frame, bg='white', width=500, height=500)
canvas.pack()
            
button = tk.Button(frame, fg="blue", text="GENERATE", command=generate)
button.pack()

frame.mainloop()
0

hi.... its very nice what u've given but i want to use the time.sleep() function as later on i will have to add more oval.can you please tell me. thnx..

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.