Tkinter-Bildlaufleiste für Frame
Verwendung eines scrollbaren Rahmens
Das tkinter-Paket stellt dies nicht zur Verfügung eine integrierte vertikale Bildlaufleiste für einen Rahmen. Sie können jedoch eines mit einer Kombination aus Canvas-, Scrollbar- und Frame-Widgets erstellen. Hier ist ein Beispiel:
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)
Bildlaufleiste an Mausrad binden
Standardmäßig fehlt den Bildlaufleisten von Tkinter die Scrollfunktion mit dem Mausrad. Um es zu aktivieren, können wir das Mausrad-Ereignis an die yview_scroll-Methode der Leinwand binden:
canvas.bind_all('<MouseWheel>', lambda event: canvas.yview_scroll(int(-event.delta/120), "units"))
Unterschiede zum OP-Code
Andere Punkte
Das obige ist der detaillierte Inhalt vonWie erstelle ich in Tkinter einen scrollbaren Rahmen mit einer vertikalen Bildlaufleiste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!