Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Cách dùng lớp PyQt QTextEdit để tạo một widget cho phép chỉnh sửa
Trong bài viết này, bạn sẽ tìm hiểu cách sử dụng lớp PyQt QTextEdit, một widget mạnh mẽ cho phép người dùng chỉnh sửa và hiển thị cả văn bản thường (plain text) lẫn văn bản có định dạng (rich text). QTextEdit giúp bạn xây dựng các giao diện đa dạng và linh hoạt, từ việc nhập liệu cơ bản đến xử lý văn bản phức tạp, đáp ứng nhu cầu của các ứng dụng với khả năng soạn thảo văn bản phong phú.
Giới thiệu về PyQt QTextEdit
Lớp QLineEdit chỉ cho phép bạn tạo một widget hỗ trợ chỉnh sửa một dòng văn bản. Để nhập nhiều dòng văn bản, bạn cần sử dụng lớp QTextEdit.
Không giống như QLineEdit, QTextEdit hỗ trợ cả văn bản thường và văn bản định dạng. Trên thực tế, bạn sẽ sử dụng widget QTextEdit để chỉnh sửa và hiển thị cả hai loại văn bản này.
Widget QTextEdit hỗ trợ định dạng văn bản phong phú (rich text) bằng cách sử dụng các thẻ theo phong cách HTML hoặc định dạng Markdown. QTextEdit được thiết kế để xử lý các tài liệu lớn và phản hồi nhanh chóng với các thao tác của người dùng.
Bài viết này được đăng tại [free tuts .net]
Ví dụ về PyQt QTextEdit
Dưới đây là ví dụ về cách tạo một widget chỉnh sửa văn bản đa dòng đơn giản bằng cách sử dụng lớp QTextEdit:
import sys from PyQt6.QtWidgets import QApplication, QWidget, QTextEdit, QFormLayout class MainWindow(QWidget): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setWindowTitle('PyQt TextEdit') self.setMinimumWidth(200) layout = QFormLayout() self.setLayout(layout) text_edit = QTextEdit(self) layout.addRow(text_edit) self.show() if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() sys.exit(app.exec())
Giải thích cách hoạt động
Tạo widget chỉnh sửa văn bản đa dòng:
text_edit = QTextEdit(self) layout.addRow(text_edit)
Đoạn mã trên tạo một widget QTextEdit để cho phép nhập và chỉnh sửa văn bản đa dòng.
Thiết lập giao diện:
layout = QFormLayout() self.setLayout(layout)
Giao diện của widget chính được thiết lập bằng QFormLayout và QTextEdit được thêm vào thông qua phương thức addRow()
.
Kết quả: