Bonjour,
J'utilise le widget Tablelist pour faire un tableau avec Tkinter. Parmi les options possibles pour remplir une colonne, il y a checkbutton qui, lorsqu'on clique dessus fait apparaître un checkbutton et fait passer la variable affichée de 0 à 1 ou inversément. J'essaie de changer cela pour que le checkbutton passe de a à b. Ceci nécessite l'appel d'une fonction supplémentaire et là survient le problème.
Voici d'abord mon code:
En cliquant sur le checkbutton, la fonction editEndCmd est appelée. Seulement, les arguments sont des strings et en l'occurrence, pour tl, il faudrait que ce soit une instance du widget pour que je puisse appliquer la méthode cellconfigure... d'où plantage.
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 def checkbuttontest(): def editEndCmd(tl, row, col, text): if text == '1': tl.cellconfigure(row+','+col,text='a') else: tl.cellconfigure(row+','+col,text='b') root = Tk() root.title("TableList Edit Test") tl = TableList(root, background = "white", editendcommand=editEndCmd, columns = (0, "First", 0, "Second"), selecttype="cell", stretch = "all" ) tl.pack(fill="both") tl.columnconfigure(0, editable="yes", editwindow="checkbutton") for a in range(10): tl.insert("end", ('a', "World")) root.mainloop() if __name__=="__main__": checkbuttontest()
Y a-t-il une erreur de programmation?
Est-il possible de transformer ce string en instance pour appliquer la méthode cellconfigure?
Merci pour votre aide.
Partager