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

Patricia Arquette
Lepaskan: 2024-11-23 20:35:10
asal
471 orang telah melayarinya

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)
Salin selepas log masuk

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"))
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan