Tìm hiểu về QLineEdit trong PyQt6



Trong bài viết này, chúng ta sẽ được tìm hiểu cách sử dụng lớp QLineEdit để tạo ra một ô dữ liệu cho phép người dùng nhập liệu từ bàn phím.

Giới thiệu về QLineEdit

Trong PyQt, thành phần QLineEdit cho phép bạn tạo ra một ô để cho phép người dùng nhập dữ liệu. Tiêu biểu, các giao diện mở đầu của một phần mềm có sử dụng QLineEdit để nhập thông tin vào để kiểm tra.
Bạn thường sử dụng QLineEdit cùng với QLabel. Để tạo một QLineEdit, ta thực hiện theo các bước sau:
Đầu tiên, ta thêm lớp QLineEdit từ thư viện PyQt6.QtWidgets:

from PyQt6.QtWidgets import QLineEdit

Thứ hai, tạo một đối tượng là thể hiện của lớp QLineEdit, nó được cung cấp hai phương thức khởi tạo mà ta có thể tạo đối tượng từ lớp QLineEdit:

  • QLineEdit(parent: QWidget = None): Khởi tạo một ô nhập liệu trống.
  • QLineEdit(text: str, parent: QWidget = None): Khởi tạo một ô nhập liệu với một giá trị chuỗi mặc định

Ví dụ:

line_edit = QLineEdit('Default Value', self)

Bên cạnh đó, bạn cũng có thể sử dụng thêm những thuộc tính tuỳ chọn khác:

Thuộc tính Kiểu dữ liệu Mô tả
text string Nội dung của ô nhập liệu
readOnly Boolean True hoặc False. Nếu True thì ô nhập liệu không thể chỉnh sửa
clearButtonEnabled Boolean True để thêm nút ấn xoá nội dung
placeholderText string Văn bản được hiển thị khi ô nhập liệu chưa được nhập dữ liệu
maxLength integer Đặc tả kích thước tối đa số lượng các ký tự mà có thể nhập liệu
echoMode QLineEdit.EchoMode Thay đổi cách hiển thị cũng như hiển thị. Ví dụ, password thì sẽ không nhìn thấy dữ liệu

Ví dụ về cách sử dụng QLineEdit

Ví dụ đơn giản về QLineEdit

Quan sát vào chương trình mẫu dưới đây để thấy được cách tạo ra một QLineEdit:

import sys
from PyQt6.QtWidgets import (QApplication, QWidget, QLineEdit, QVBoxLayout)

class MainWindow(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        # thuộc tính cơ bản của cửa sổ hiển thị
        self.setWindowTitle('Ví dụ đơn giản về QLineEdit')
        self.setGeometry(100, 100, 320, 210)

        # tạo một QLineEdit
        search_box = QLineEdit(self, placeholderText='Enter a keyword to search...', clearButtonEnabled=True)

        # xác định vị trí của các thành phần
        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ả của chương trình trên như sau:

Ví dụ đơn giản về QLineEdit

Ví dụ đơn giản về QLineEdit

Ví dụ về QLineEdit để tạo ô nhập liệu chứa mật khẩu

Quan sát chương trình mẫu sau để biết cách tạo một ô nhập liệu 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)

        # thông tin cơ bản cửa sổ
        self.setWindowTitle('Ví dụ nhập mật khẩu bằng QLineEdit')
        self.setGeometry(100, 100, 320, 210)

        # tạo một QLineEdit
        password = QLineEdit(self, echoMode=QLineEdit.EchoMode.Password)

        # xác định vị trí gắn các thành phần
        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())

Kết quả của chương trình trên là:

Ví dụ nhập mật khẩu bằng QLineEdit

Ví dụ nhập mật khẩu bằng QLineEdit

Để tạo một ô nhập liệu mật khẩu, bạn cần thiết lập echoModeQLineEdit.EchoMode.Password:

password = QLineEdit(self, echoMode=QLineEdit.EchoMode.Password)

Ví dụ tạo QLineEdit với dữ liệu được gợi ý nhập liệu

Để tạo một ô nhập liệu với các giá trị gợi ý văn bản, ta thực hiện theo các bước sau:
Đầu tiên, ta thêm lớp QLineEdit từ thư viện PyQt6.QtWidgets.
Thứ hai, tạo một QCompleter với một danh sách các văn bản mà bạn muốn gợi ý khi nhập liệu:

completer = QCompleter(word_list)

Thứ ba, tạo đối tượng QLineEdit và gọi phương thức setCompleter() để gắn danh sách văn bản gợi ý:

line_edit = QLineEdit(self)
line_edit.setCompleter(completer)

Quan sát ví dụ sau để biết cách tạo một ô nhập liệu có các văn bản gợi ý:

import sys
from PyQt6.QtWidgets import (QApplication, QWidget, QLineEdit, QVBoxLayout, QCompleter)

class MainWindow(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        # thông tin cơ bản của cửa sổ
        self.setWindowTitle('Nhập liệu có gợi ý với QLineEdit')
        self.setGeometry(100, 100, 320, 210)

        # danh sách các từ gợi ý
        common_fruits = QCompleter([
            'Apple',
            'Apricot',
            'Banana',
            'Carambola',
            'Olive',
            'Oranges',
            'Papaya',
            'Peach',
            'Pineapple',
            'Pomegranate',
            'Rambutan',
            'Ramphal',
            'Raspberries',
            'Rose apple',
            'Starfruit',
            'Strawberries',
            'Water apple',
        ])

        # tạo QLineEdit
        fruit = QLineEdit(self)
        # gắn danh sách gợi ý vào QLineEdit
        fruit.setCompleter(common_fruits)

        # xác định vị trí các thành phần
        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())

Và kết quả của chương trình trên như sau:

Ví dụ nhập liệu có gợi ý với QLineEdit

Ví dụ nhập liệu có gợi ý với QLineEdit

Source code mẫu QLineEdit

Có thể bạn sẽ thích…

Trả lời