Bonjour,
Je souhaite pouvoir déplacer les items de ma ListView, mais je ne sais pas du tout comment faire?
Dans l'idée:
-Sélectionner la ligne de ma ListView à bouger, (on récupère l'index de la ligne)
-Bouton Up ou Down,
Merci par avance
Bonjour,
Je souhaite pouvoir déplacer les items de ma ListView, mais je ne sais pas du tout comment faire?
Dans l'idée:
-Sélectionner la ligne de ma ListView à bouger, (on récupère l'index de la ligne)
-Bouton Up ou Down,
Merci par avance
Salut,
Vous avez posté dans le forum tkinter mais ListView n'est pas un widget de base...
Et s'il s'agit d'une Listbox, il faut apprendre à utiliser les méthode .insert et .delete (ou poster le code que vous avez essayé)
- W
Je dirais même plus que c'est une TreeView![]()
Eh bien vous cherchez dans votre documentation préférée(*), ce qui ressemble à .insert .delete pour ce widget là.... puis vous essayez de les faire marcher, et, si çà ne marche pas vous pourrez montrer le code que vous avez essayé.
note: ce widget là a même une méthode .move.
- W
(*) c'est celle que je préfère, il y en a d'autres.
Je suis parti sur le .move, donc:
J'ai 2 boutons: 1 MoveUp et 1 MoveDown
Je sélectionne mon item dans ma TreeView, je clique sur MoveUp ou MoveDown, mon item se décale :-)
Voilà ce que j'ai fait:
Bon sans surprise j'ai une errreur lol:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #------------------------------------------------------------------------------------------- #------------------------------------------------------------------------------------------- def MoveUp(): print('Move up kanban in list') curItem = tree.focus() KANBAN_ID = tree.item(curItem)['text'] print(tree.index) if KANBAN_ID!='': print(KANBAN_ID) tree.move(KANBAN_ID, '', KANBAN_ID-1) else: messagebox.showerror("Erreur", "Veuillez séléctionner un kanban dans la liste!")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 File "Kanban+.py", line 398, in MoveUp tree.move(KANBAN_ID, '', KANBAN_ID-1) File "C:\python_373\lib\tkinter\ttk.py", line 1394, in move self.tk.call(self._w, "move", item, parent, index) _tkinter.TclError: Item 6 not found
Salut,
C'est bien joli çà mais dans tree.move(KANBAN_ID, '', KANBAN_ID-1)
le premier argument doit être l'identifiant d'un item et c'est une chaine de caractères.
Si vous voulez découvrir comment fonctionne un widget, il faut commencer "petit":
puis vous pouvez ajouter un Button qui va, par exemple, essayer de déplacer l'item sélectionné vers le haut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 import tkinter as tk import tkinter.ttk as ttk tv = ttk.Treeview() for i in range(5): iid = tv.insert('', 'end', text=f'text-{i}') print (iid) tv.pack() tk.mainloop()
Cela fait, vous allez pouvoir adapter le code pour qu'il soit plus facile à intégrer à votre programme.
Enfin, vous allez pouvoir essayer de l'intégrer.
- W
Partager