Verwendung von Tkinter zum Hinzufügen von Bildlaufleistenfunktionen zu Frames
In Tkinter muss zum Erstellen eines scrollbaren Rahmens eine Bildlaufleiste integriert werden, die das automatische Scrollen ermöglicht Inhalte, die über die Rahmenhöhe hinausgehen. Basierend auf aufschlussreichen Diskussionen wurde vorgeschlagen, dass die gewünschte Funktionalität durch die Konstruktion eines Rahmens, das Einschließen einer Leinwand darin und das Anbringen der Bildlaufleiste am Rahmen erreicht werden könnte. Anschließend wurde ein Fensterobjekt innerhalb der Leinwand konzipiert, um zusätzliche Rahmen aufzunehmen.
Mit dem folgenden Python-Code kann ein vertikal scrollbarer Rahmen effektiv implementiert werden:
import tkinter as tk import tkinter.ttk as ttk class VerticalScrolledFrame(ttk.Frame): def __init__(self, parent, *args, **kw): ttk.Frame.__init__(self, parent, *args, **kw) vscrollbar = ttk.Scrollbar(self, orient=VERTICAL) vscrollbar.pack(fill=Y, side=RIGHT, expand=FALSE) canvas = tk.Canvas(self, bd=0, highlightthickness=0, yscrollcommand=vscrollbar.set) canvas.pack(side=LEFT, fill=BOTH, expand=TRUE) vscrollbar.config(command=canvas.yview) canvas.xview_moveto(0) canvas.yview_moveto(0) self.interior = interior = ttk.Frame(canvas) interior_id = canvas.create_window(0, 0, window=interior, anchor=NW) def _configure_interior(event): size = (interior.winfo_reqwidth(), interior.winfo_reqheight()) canvas.config(scrollregion="0 0 %s %s" % size) if interior.winfo_reqwidth() != canvas.winfo_width(): canvas.config(width=interior.winfo_reqwidth()) interior.bind('<Configure>', _configure_interior) def _configure_canvas(event): if interior.winfo_reqwidth() != canvas.winfo_width(): canvas.itemconfigure(interior_id, width=canvas.winfo_width()) canvas.bind('<Configure>', _configure_canvas) root = tk.Tk() frame = VerticalScrolledFrame(root) frame.pack() for i in range(10): ttk.Button(frame.interior, text="Button " + str(i)).pack() root.mainloop()
Ansprechen der Abfragen :
Das obige ist der detaillierte Inhalt vonWie kann ich in Tkinter mithilfe einer Leinwand und einer Bildlaufleiste einen scrollbaren Rahmen erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!