Heim > Backend-Entwicklung > Python-Tutorial > Wie erstelle ich in Tkinter einen scrollbaren Rahmen mit einer vertikalen Bildlaufleiste?

Wie erstelle ich in Tkinter einen scrollbaren Rahmen mit einer vertikalen Bildlaufleiste?

Patricia Arquette
Freigeben: 2024-11-23 20:35:10
Original
546 Leute haben es durchsucht

How to Create a Scrollable Frame with a Vertical Scrollbar in Tkinter?

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)
Nach dem Login kopieren

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"))
Nach dem Login kopieren

Unterschiede zum OP-Code

  • Die VerticalScrolledFrame-Klasse Bietet eine robustere scrollbare Rahmenimplementierung.
  • Die Leinwandgröße wird automatisch an die Innenseite angepasst Rahmen.
  • Es unterstützt auch das Scrollen mit dem Mausrad.

Andere Punkte

  • Für normale Widgets (wie Beschriftungen), Raster wird gegenüber place bevorzugt, da es ein strukturierteres Layout bietet.
  • anchor='nw' gibt an, dass das Fenster (innerer Rahmen) positioniert werden soll an der nordwestlichen Ecke der Leinwand.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage