Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Sử dụng widget PanedWindow trong Tkinter
Trong bài viết này, bạn sẽ tìm hiểu cách sử dụng widget PanedWindow trong Tkinter, một công cụ mạnh mẽ giúp bạn dễ dàng chia nhỏ không gian của một khung (frame) hoặc cửa sổ thành các phần riêng biệt. Với PanedWindow, bạn có thể tạo ra các giao diện người dùng linh hoạt, cho phép người dùng tùy chỉnh và điều chỉnh kích thước các phần khác nhau trong cửa sổ theo ý muốn.
Giới thiệu Về Tkinter PanedWindow
Widget PanedWindow dùng để chia không gian của một khung hoặc cửa sổ. PanedWindow giống như một Frame, nhưng có khả năng chứa các widget con.
Thông thường, một PanedWindow chứa một dãy các widget con được sắp xếp theo chiều dọc hoặc chiều ngang:
- PanedWindow sử dụng một thanh ngăn cách các widget con, thanh này được gọi là sash.
- Sash có thể có một handle là một ô vuông nhỏ, bạn có thể kéo nó bằng chuột để thay đổi kích thước của các pane.
- Pane là khu vực mà một widget con chiếm giữ.
Cách tạo PanedWindow
Để tạo một widget PanedWindow, bạn sử dụng cú pháp sau:
Bài viết này được đăng tại [free tuts .net]
ttk.PanedWindow(container, **options)
Một tùy chọn đáng chú ý của widget PanedWindow là tùy chọn orient
.
- Nếu bạn đặt
orient
làtk.HORIZONTAL
, nó sẽ xếp các widget con cạnh nhau theo chiều ngang. - Nếu
orient
làtk.VERTICAL
, nó sẽ xếp các widget con từ trên xuống dưới. - Tùy chọn
orient
mặc định làtk.VERTICAL
.
Ví dụ sử dụng PanedWindow trong Tkinter
Ví dụ sau đây minh họa cách sử dụng widget PanedWindow để tách hai Listbox:
import tkinter as tk from tkinter import ttk root = tk.Tk() root.title('PanedWindow Demo') root.geometry('300x200') # thay đổi style sang classic (chỉ dành cho Windows) # để hiển thị sash và handle style = ttk.Style() style.theme_use('classic') # tạo PanedWindow pw = ttk.PanedWindow(orient=tk.HORIZONTAL) # Listbox bên trái left_list = tk.Listbox(root) left_list.pack(side=tk.LEFT) pw.add(left_list) # Listbox bên phải right_list = tk.Listbox(root) right_list.pack(side=tk.LEFT) pw.add(right_list) # đặt PanedWindow lên cửa sổ chính pw.pack(fill=tk.BOTH, expand=True) root.mainloop()
Kết quả
Khi bạn chạy chương trình trên Windows, có thể bạn sẽ không thấy sash và handle hiển thị. Để làm cho chúng hiển thị, bạn có thể đặt theme mặc định là classic.
Kết bài
Widget PanedWindow trong Tkinter là một công cụ hữu ích để chia không gian của một cửa sổ hoặc khung thành các phần khác nhau, giúp bạn dễ dàng quản lý bố cục giao diện người dùng một cách hiệu quả. Việc sử dụng PanedWindow cho phép tạo ra các vùng có thể thay đổi kích thước, cung cấp cho người dùng trải nghiệm tương tác linh hoạt và tùy biến.