Barre de défilement Tkinter pour cadre
Utilisation d'un cadre déroulant
Le package tkinter ne fournit pas une barre de défilement verticale intégrée pour un cadre. Cependant, vous pouvez en créer un en utilisant une combinaison de widgets Canvas, Scrollbar et Frame. Voici un exemple :
class VerticalScrolledFrame(tk.Frame): def __init__(self, parent): tk.Frame.__init__(self, parent) # Create a canvas canvas = tk.Canvas(self) canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) # Create a vertical scrollbar scrollbar = ttk.Scrollbar(self, orient=tk.VERTICAL) scrollbar.pack(side=tk.RIGHT, fill=tk.Y) # Connect the scrollbar to the canvas scrollbar.config(command=canvas.yview) canvas.config(yscrollcommand=scrollbar.set) # Reset the view canvas.xview_moveto(0) canvas.yview_moveto(0) # Create a frame inside the canvas self.interior = ttk.Frame(canvas) canvas.create_window(0, 0, window=self.interior, anchor=NW)
Liaison de la barre de défilement à la molette de la souris
Par défaut, les barres de défilement Tkinter n'ont pas de fonctionnalité de défilement avec la molette de la souris. Pour l'activer, nous pouvons lier l'événement de la molette de la souris à la méthode yview_scroll du canevas :
canvas.bind_all('<MouseWheel>', lambda event: canvas.yview_scroll(int(-event.delta/120), "units"))
Différences par rapport au code de l'OP
Autres points
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!