Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencipta Bingkai Boleh Tatal dengan Bar Tatal Menegak dalam Tkinter?

Bagaimana untuk Mencipta Bingkai Boleh Tatal dengan Bar Tatal Menegak dalam Tkinter?

Patricia Arquette
Patricia Arquetteasal
2024-11-23 20:35:10488semak imbas

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

Tkinter Scrollbar for Frame

Menggunakan Bingkai Boleh Scroll

Pakej tkinter tidak menyediakan bar skrol menegak terbina dalam untuk bingkai. Walau bagaimanapun, anda boleh menciptanya menggunakan gabungan Kanvas, Bar Tatal dan widget Bingkai. Berikut ialah contoh:

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)

Mengikat Bar Tatal ke Roda Tetikus

Secara lalai, bar skrol Tkinter tidak mempunyai fungsi tatal roda tetikus. Untuk mendayakannya, kita boleh mengikat acara roda tetikus pada kaedah yview_scroll pada kanvas:

canvas.bind_all('<MouseWheel>', lambda event: canvas.yview_scroll(int(-event.delta/120), "units"))

Perbezaan daripada Kod OP

  • Kelas VerticalScrolledFrame menyediakan pelaksanaan bingkai boleh tatal yang lebih mantap.
  • Ia melaraskan secara automatik saiz kanvas agar sesuai dengan bingkai dalam.
  • Ia juga menyokong tatal roda tetikus.

Mata Lain

  • Untuk biasa widget (seperti label), grid lebih disukai daripada tempat kerana ia menyediakan lebih berstruktur susun atur.
  • anchor='nw' menyatakan bahawa tingkap (bingkai dalam) harus diletakkan di sudut barat laut kanvas.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Bingkai Boleh Tatal dengan Bar Tatal Menegak dalam Tkinter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn