Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Tìm hiểu về widget Scrollbar của Tkinter
Trong bài này, bạn sẽ tìm hiểu về widget Scrollbar trong Tkinter và cách tích hợp nó với các widget có khả năng cuộn. Thanh cuộn (Scrollbar) là một công cụ hữu ích giúp người dùng dễ dàng di chuyển qua các nội dung lớn hơn không gian hiển thị của ứng dụng. Qua bài viết này, bạn sẽ nắm vững cách tạo và liên kết thanh cuộn với các widget như Text hoặc Listbox để cải thiện trải nghiệm người dùng trong ứng dụng Tkinter của bạn.
Giới thiệu về widget Scrollbar trong Tkinter
Một thanh cuộn cho phép bạn xem toàn bộ nội dung của một widget khác, thường có kích thước lớn hơn không gian có sẵn. Trong Tkinter, widget Scrollbar không phải là một phần của các widget khác như Text và Listbox mà là một widget độc lập.
Để sử dụng widget Scrollbar, bạn cần:
- Tạo một widget Scrollbar.
- Liên kết thanh cuộn với một widget có thể cuộn.
Dưới đây là cách tạo một widget Scrollbar bằng cách sử dụng hàm tạo ttk.Scrollbar:
Bài viết này được đăng tại [free tuts .net]
scrollbar = ttk.Scrollbar( container, orient='vertical', command=widget.yview )
Trong đó:
container
là cửa sổ hoặc khung chứa thanh cuộn.orient
xác định hướng cuộn, có thể làvertical
(dọc) hoặchorizontal
(ngang).command
cho phép widget Scrollbar giao tiếp với widget có thể cuộn.
Widget có thể cuộn cũng cần giao tiếp lại với thanh cuộn về tỷ lệ phần trăm của toàn bộ nội dung hiện đang hiển thị.
Mỗi widget có thể cuộn đều có tùy chọn yscrollcommand
và/hoặc xscrollcommand
. Bạn có thể gán phương thức set
của thanh cuộn cho các tùy chọn này:
widget['yscrollcommand'] = scrollbar.set
Ví dụ về widget Scrollbar trong Tkinter
Widget Text là một trong nhiều loại widget có thể cuộn. Chương trình sau minh họa một giao diện người dùng đơn giản bao gồm các widget Text và Scrollbar:
import tkinter as tk from tkinter import ttk root = tk.Tk() root.resizable(False, False) root.title("Scrollbar Widget Example") # Áp dụng bố cục lưới root.grid_columnconfigure(0, weight=1) root.grid_rowconfigure(0, weight=1) # Tạo widget Text text = tk.Text(root, height=10) text.grid(row=0, column=0, sticky=tk.EW) # Tạo widget Scrollbar và đặt lệnh của nó cho widget Text scrollbar = ttk.Scrollbar(root, orient='vertical', command=text.yview) scrollbar.grid(row=0, column=1, sticky=tk.NS) # Giao tiếp lại với thanh cuộn text['yscrollcommand'] = scrollbar.set # Thêm văn bản mẫu vào widget Text để hiển thị trên màn hình for i in range(1, 50): position = f'{i}.0' text.insert(position, f'Dòng {i}\n') root.mainloop()
Kết quả:
Kết bài
Tạo thanh cuộn bằng cách sử dụng ttk.Scrollbar(orient, command)
giúp bạn quản lý nội dung lớn hiệu quả hơn trong ứng dụng Tkinter. Với orient
, bạn có thể lựa chọn chiều cuộn là vertical
(dọc) hoặc horizontal
(ngang), tùy thuộc vào nhu cầu của widget có thể cuộn. Sử dụng command
với các thuộc tính như yview
hoặc xview
cho phép thanh cuộn giao tiếp và điều khiển nội dung cuộn của widget. Cuối cùng, việc liên kết thuộc tính yscrollcommand
của widget với phương thức set
của thanh cuộn đảm bảo sự đồng bộ giữa vị trí cuộn và thanh cuộn, mang lại trải nghiệm mượt mà cho người dùng.