Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Cách sử dụng widget Text của Tkinter
Trong giao diện người dùng, việc cung cấp khả năng chỉnh sửa văn bản đa dòng là một yêu cầu phổ biến. Tkinter, một thư viện GUI tích hợp trong Python, cung cấp widget Text để đáp ứng nhu cầu này. Trong bài viết này, bạn sẽ học cách sử dụng widget Text của Tkinter để thêm một trình soạn thảo văn bản vào ứng dụng của mình, giúp người dùng có thể hiển thị và chỉnh sửa văn bản một cách dễ dàng và linh hoạt.
Giới thiệu về widget Text trong Tkinter
Widget Text cho phép bạn hiển thị và chỉnh sửa vùng văn bản đa dòng với nhiều kiểu dáng khác nhau. Ngoài văn bản đơn thuần, widget Text còn hỗ trợ nhúng hình ảnh và liên kết.
Để tạo một widget Text, bạn sử dụng cú pháp sau:
text = tk.Text(master, conf={}, **kw)
Trong cú pháp này:
Bài viết này được đăng tại [free tuts .net]
master
là thành phần cha của widget Text.cnf
là một từ điển chứa cấu hình của widget.kw
là một hoặc nhiều tham số từ khóa dùng để cấu hình widget Text.
Lưu ý rằng widget Text chỉ có sẵn trong module Tkinter, không có trong module Tkinter.ttk.
Ví dụ sau đây tạo một widget Text với tám hàng và đặt nó trên cửa sổ gốc:
from tkinter import Tk, Text root = Tk() root.resizable(False, False) root.title("Ví dụ về widget Text") text = Text(root, height=8) text.pack() root.mainloop()
Kết quả:
Trong ví dụ này, tham số height
xác định số hàng của widget Text.
Chèn nội dung ban đầu
Để chèn nội dung vào vùng văn bản, bạn sử dụng phương thức insert()
. Ví dụ:
from tkinter import Tk, Text root = Tk() root.resizable(False, False) root.title("Ví dụ về widget Text") text = Text(root, height=8) text.pack() text.insert('1.0', 'Đây là một demo về widget Text') root.mainloop()
Kết quả:
Tham số đầu tiên của phương thức insert()
là vị trí bạn muốn chèn văn bản. Vị trí có định dạng sau:
'line.column'
Trong ví dụ trên, '1.0' có nghĩa là dòng 1, ký tự 0, tức là ký tự đầu tiên của dòng đầu tiên trong vùng văn bản.
Lấy giá trị văn bản
Để lấy nội dung của một widget Text, bạn sử dụng phương thức get()
. Ví dụ:
text_content = text.get('1.0', 'end')
Phương thức get()
nhận hai tham số. Tham số đầu tiên là vị trí bắt đầu và tham số thứ hai là vị trí kết thúc. Để lấy một phần của văn bản, bạn có thể chỉ định các vị trí bắt đầu và kết thúc khác nhau.
Vô hiệu hóa widget Text
Để ngăn người dùng thay đổi nội dung của widget Text, bạn có thể vô hiệu hóa nó bằng cách đặt thuộc tính state
thành 'disabled' như sau:
text['state'] = 'disabled'
Để kích hoạt lại việc chỉnh sửa, bạn có thể thay đổi thuộc tính state
trở lại thành normal
:
text['state'] = 'normal'
Kết bài
Widget Text trong Tkinter là một công cụ tốt để tạo ra các vùng văn bản đa dòng, cho phép hiển thị và chỉnh sửa nội dung một cách linh hoạt. Bằng cách sử dụng widget này, bạn có thể cung cấp cho người dùng một công cụ soạn thảo văn bản dễ sử dụng và hiệu quả, giúp nâng cao trải nghiệm của ứng dụng. Với những tính năng như chèn văn bản, định dạng và xử lý sự kiện, widget Text thực sự là một phần không thể thiếu khi phát triển các ứng dụng giao diện người dùng.