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 QLineEdit trong PyQt
Trong bài viết này, bạn sẽ tìm hiểu cách sử dụng widget QLineEdit trong PyQt để tạo một ô nhập liệu đơn dòng. Đây là một công cụ thường được sử dụng trong các form nhập dữ liệu, giúp người dùng dễ dàng nhập thông tin như tên, địa chỉ email hoặc mật khẩu. Bằng cách nắm vững cách sử dụng QLineEdit, bạn sẽ có thể xây dựng các ứng dụng với giao diện thân thiện và trực quan hơn.
Giới thiệu về PyQt QLineEdit
Trong thực tế, bạn thường sử dụng widget QLineEdit kết hợp với widget QLabel.
Để tạo một widget QLineEdit, bạn thực hiện theo các bước sau:
Đầu tiên, nhập QLineEdit từ module PyQt6.QtWidgets:
Bài viết này được đăng tại [free tuts .net]
from PyQt6.QtWidgets import QLineEdit
Sau đó, tạo một đối tượng QLineEdit mới với các tùy chọn:
- Không có tham số.
- Chỉ có widget cha.
- Hoặc với một giá trị chuỗi mặc định làm tham số đầu tiên.
Ví dụ:
line_edit = QLineEdit('Giá trị mặc định', self)
Ngoài ra, bạn có thể sử dụng các thuộc tính sau:
Thuộc tính | Kiểu dữ liệu | Mô tả |
---|---|---|
text | string | Nội dung của dòng nhập liệu |
readOnly | Boolean | True hoặc False. Nếu là True, dòng nhập liệu không thể chỉnh sửa |
clearButtonEnabled | Boolean | True để thêm nút xóa |
placeholderText | string | Văn bản xuất hiện khi dòng nhập liệu trống |
maxLength | integer | Chỉ định số ký tự tối đa có thể nhập |
echoMode | QLineEdit.EchoMode | Thay đổi cách văn bản hiển thị (ví dụ: mật khẩu) |
Các ví dụ về sử dụng PyQt QLineEdit
Hãy xem một số ví dụ về cách sử dụng widget QLineEdit.
Ví dụ đơn giản về PyQt QLineEdit
Chương trình sau đây hiển thị cách tạo một widget QLineEdit:
import sys from PyQt6.QtWidgets import ( QApplication, QWidget, QLineEdit, QVBoxLayout ) class MainWindow(QWidget): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setWindowTitle('PyQt QLineEdit Widget') self.setGeometry(100, 100, 320, 210) search_box = QLineEdit( self, placeholderText='Nhập từ khóa để tìm kiếm...', clearButtonEnabled=True ) # Đặt widget lên cửa sổ layout = QVBoxLayout() layout.addWidget(search_box) self.setLayout(layout) # Hiển thị cửa sổ self.show() if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() sys.exit(app.exec())
Kết quả:
Sử dụng PyQt QLineEdit để tạo mục nhập mật khẩu
Chương trình sau tạo một widget QLineEdit mới làm mục nhập mật khẩu:
import sys from PyQt6.QtWidgets import ( QApplication, QWidget, QLineEdit, QVBoxLayout ) class MainWindow(QWidget): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setWindowTitle('PyQt QLineEdit Widget') self.setGeometry(100, 100, 320, 210) password = QLineEdit(self, echoMode=QLineEdit.EchoMode.Password) # Đặt widget lên cửa sổ layout = QVBoxLayout() layout.addWidget(password) self.setLayout(layout) # Hiển thị cửa sổ self.show() if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() sys.exit(app.exec())
Để biến widget QLineEdit thành mục nhập mật khẩu, bạn chỉ cần đặt echoMode
thành QLineEdit.EchoMode.Password
:
password = QLineEdit(self, echoMode=QLineEdit.EchoMode.Password)
Kết quả:
Sử dụng PyQt QLineEdit với tính năng tự động hoàn thành (auto-complete)
Để tạo một mục nhập với tính năng tự động hoàn thành, bạn thực hiện các bước sau:
Đầu tiên, nhập QCompleter từ module PyQt6.QtWidgets.
Sau đó, tạo một widget QCompleter với danh sách các chuỗi sử dụng cho tính năng tự động hoàn thành:
completer = QCompleter(word_list)
Cuối cùng, tạo một QLineEdit và gọi phương thức setCompleter()
của nó với đối tượng completer:
line_edit = QLineEdit(self) line_edit.setCompleter(completer)
Ví dụ sau hiển thị một widget QLineEdit với tính năng tự động hoàn thành:
import sys from PyQt6.QtWidgets import ( QApplication, QWidget, QLineEdit, QVBoxLayout, QCompleter ) class MainWindow(QWidget): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setWindowTitle('PyQt QLineEdit Widget') self.setGeometry(100, 100, 320, 210) common_fruits = QCompleter([ 'Apple', 'Apricot', 'Banana', 'Carambola', 'Olive', 'Oranges', 'Papaya', 'Peach', 'Pineapple', 'Pomegranate', 'Rambutan', 'Ramphal', 'Raspberries', 'Rose apple', 'Starfruit', 'Strawberries', 'Water apple', ]) fruit = QLineEdit(self) fruit.setCompleter(common_fruits) # Đặt widget lên cửa sổ layout = QVBoxLayout() layout.addWidget(fruit) self.setLayout(layout) # Hiển thị cửa sổ self.show() if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() sys.exit(app.exec())
Kết quả:
Kết bài
Qua bài viết này, bạn đã nắm được cách sử dụng QLineEdit để tạo ra các widget nhập liệu đơn dòng cơ bản trong PyQt. Bạn cũng đã học cách tùy chỉnh cách hiển thị văn bản bằng thuộc tính echoMode
, giúp bảo mật thông tin như mật khẩu. Cuối cùng, bạn đã khám phá cách kết hợp QLineEdit với QCompleter để bổ sung tính năng tự động hoàn thành, mang lại trải nghiệm người dùng tốt hơn. Với những kiến thức này, bạn có thể xây dựng các form nhập liệu linh hoạt và hiệu quả trong ứng dụng PyQt của mình.