Salut à tous (pour les tardifs ) !

Je suis en train de faire joujou avec Tkinter, histoire de passer de la console à quelque chose d'un peu plus interactif sans pour autant aller chercher très loin.

Mon problème est pour remplir une listbox comme le titre à du vous le dire.
Je cherche à remplir un listbox avec une liste de chiffre par exemple (dans l'exemple suivant, une boucle).

Mon problème c'est que je n'arrive pas à les afficher au fur et à mesure qu'ils sont généré par la boucle, mais seulement tous en même temps une fois finit.

Voici les deux codes (un sans thread et un avec) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/local/bin/python3
 
import tkinter
import time
 
def tester ():
	liste.delete(0, tkinter.END)
	for i in range(0, 10):
		time.sleep(1)
		liste.insert(tkinter.END, i)
 
root = tkinter.Tk()
root.resizable(width=False, height=False)
root.title('Test listes...')
 
liste = tkinter.Listbox(root, width=30, height=25)
liste.grid(row=0, column=0, padx=15, pady=15)
 
frameButton = tkinter.Frame(root)
 
buttonTester = tkinter.Button(frameButton, text="Tester", command=tester)
buttonQuitter = tkinter.Button(frameButton, text="Quitter", command=root.destroy)
buttonTester.grid(row=0, column=0)
buttonQuitter.grid(row=0, column=1)
 
frameButton.grid(row=1, column=0, padx=15, pady=15)
 
root.mainloop()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/local/bin/python3
 
import tkinter
import time
import threading
 
def tester ():
	liste.delete(0, tkinter.END)
	for i in range(0, 10):
		thread = threading.Thread(None, insertion(i))
		thread.start()
 
def insertion (i):
	time.sleep(1)
	liste.insert(tkinter.END, i)
 
root = tkinter.Tk()
root.resizable(width=False, height=False)
root.title('Test listes...')
 
liste = tkinter.Listbox(root, width=30, height=25)
liste.grid(row=0, column=0, padx=15, pady=15)
 
frameButton = tkinter.Frame(root)
 
buttonTester = tkinter.Button(frameButton, text="Tester", command=tester)
buttonQuitter = tkinter.Button(frameButton, text="Quitter", command=root.destroy)
buttonTester.grid(row=0, column=0)
buttonQuitter.grid(row=0, column=1)
 
frameButton.grid(row=1, column=0, padx=15, pady=15)
 
root.mainloop()
Et pour les deux c'est la même chose.
J'ai rajoutais un "sleep" afin de bien le voir.

Quelqu'un peut il m'aider ?
Si je n'ai pas été assez clair n'hésitez pas !

Merci d'avance !

PS : Je suis sur Mac OS X 10.6 et je code en python 3.