Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách gắn thanh cuộn dọc vào Treeview bằng Tkinter?

Nếu bạn muốn hiển thị danh sách mục chứa một số cột, bạn có thể dùng widget Treeview trong Tkinter. Widget Treeview cho phép người dùng thêm số lượng lớn danh sách cùng với các thuộc tính có thể tùy chỉnh ngay lập tức.

Nếu bạn muốn gắn thanh cuộn dọc vào danh sách mục trong widget Treeview, bạn có thể định nghĩa hàm khởi tạo Scrollbar và cấu hình nó bằng cách thêm lệnh vào nó. Hãy xem ví dụ và thấy cách hoạt động.

Ví dụ

# Nhập thư viện cần thiết
from tkinter import *
from tkinter import ttk

# Tạo instance của khung tkinter
win = Tk()

# Thiết lập kích thước cửa sổ tkinter
win.geometry("700x350")

# Tạo instance của widget Style
style = ttk.Style()
style.theme_use('clam')

# Thêm widget Treeview và đặt chế độ chọn
tree = ttk.Treeview(win, column=("c1", "c2"), show='headings', height=8, selectmode="browse")
tree.column("#1", anchor=CENTER, stretch=NO)
tree.heading("#1", text="Fname")
tree.column("#2", anchor=CENTER, stretch=NO)
tree.heading("#2", text="Lname")

# Chèn dữ liệu vào widget Treeview
tree.insert('', 'end', text="1", values=('Alex', 'M'))
tree.insert('', 'end', text="2", values=('Belinda', 'Cross'))
tree.insert('', 'end', text="3", values=('Ravi', 'Malviya'))
tree.insert('', 'end', text="4", values=('Suresh', 'Rao'))
tree.insert('', 'end', text="5", values=('Amit', 'Fernandiz'))
tree.insert('', 'end', text="6", values=('Raghu', 'Sharma'))
tree.insert('', 'end', text="7", values=('David', 'Nash'))
tree.insert('', 'end', text="8", values=('Ethan', 'Plum'))
tree.insert('', 'end', text="9", values=('Janiece', '-'))

# Thêm thanh cuộn dọc vào widget Treeview
treeScroll = ttk.Scrollbar(win)
treeScroll.configure(command=tree.yview)
tree.configure(yscrollcommand=treeScroll.set)
treeScroll.pack(side=RIGHT, fill=BOTH)
tree.pack()

win.mainloop()

Kết quả

Chạy mã trên sẽ hiển thị cửa sổ chứa danh sách mục trong widget treeview cùng với thanh cuộn dọc gắn liền.

Cách gắn thanh cuộn dọc vào Treeview bằng Tkinter?