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.

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng