Hướng dẫn làm form đăng nhập tài khoản trong Python bằng PyQT6
Hướng dẫn chi tiết cách tạo form đăng nhập tài khoản trong Python sử dụng PyQT6, bao gồm cách thiết kế giao diện và xử lý sự kiện khi người dùng nhấn nút đăng nhập.
Trong bài viết này, bạn sẽ học cách tạo một form đăng nhập tài khoản sử dụng PyQT6 trong Python. Chúng ta sẽ xây dựng giao diện với các trường nhập liệu như tên người dùng và mật khẩu, đồng thời xử lý sự kiện khi nhấn nút đăng nhập.
Mã Python:
import sys # Thư viện hệ thống cho phép tương tác với trình thông dịch Python
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QVBoxLayout, QPushButton, QMessageBox # Nhập các lớp cần thiết từ PyQt6
# Tạo một lớp LoginForm kế thừa từ QWidget
class LoginForm(QWidget):
def __init__(self):
super().__init__() # Gọi hàm khởi tạo của lớp cha QWidget
self.initUI() # Gọi hàm để khởi tạo giao diện
def initUI(self):
self.setWindowTitle('Form đăng nhập tài khoản') # Đặt tiêu đề cho cửa sổ ứng dụng
self.setGeometry(100, 100, 400, 200) # Đặt kích thước và vị trí của cửa sổ (x, y, width, height)
# Tạo một layout dạng hộp dọc
layout = QVBoxLayout()
# Tạo và thêm các trường nhập liệu vào layout
self.username_label = QLabel('Tên người dùng:', self)
layout.addWidget(self.username_label)
self.username_input = QLineEdit(self)
layout.addWidget(self.username_input)
self.password_label = QLabel('Mật khẩu:', self)
layout.addWidget(self.password_label)
self.password_input = QLineEdit(self)
self.password_input.setEchoMode(QLineEdit.EchoMode.Password) # Thiết lập chế độ hiển thị mật khẩu
layout.addWidget(self.password_input)
# Tạo và thêm nút đăng nhập
self.login_button = QPushButton('Đăng nhập', self)
self.login_button.clicked.connect(self.login) # Kết nối sự kiện nhấn nút với hàm login
layout.addWidget(self.login_button)
# Thiết lập layout chính cho widget
self.setLayout(layout)
# Định nghĩa hàm xử lý khi người dùng nhấn nút đăng nhập
def login(self):
username = self.username_input.text()
password = self.password_input.text()
if username == "admin" and password == "password":
QMessageBox.information(self, 'Thông báo', 'Đăng nhập thành công!')
else:
QMessageBox.warning(self, 'Lỗi', 'Tên người dùng hoặc mật khẩu không đúng!')
# Phần main của ứng dụng
if __name__ == '__main__':
app = QApplication(sys.argv) # Khởi tạo đối tượng QApplication
form = LoginForm() # Tạo một đối tượng từ lớp LoginForm
form.show() # Hiển thị giao diện
sys.exit(app.exec()) # Chạy vòng lặp sự kiện của ứng dụng
Giải thích chi tiết từng dòng code
-
import sys
: Nhập thư viện hệ thống. -
from PyQt6.QtWidgets import ...
: Nhập các lớp cần thiết từ PyQt6. -
class LoginForm(QWidget)
: Định nghĩa lớpLoginForm
kế thừa từQWidget
. -
def __init__(self)
: Hàm khởi tạo của lớpLoginForm
. -
self.initUI()
: Gọi hàminitUI
để khởi tạo giao diện. -
self.setWindowTitle('...')
: Đặt tiêu đề cho cửa sổ. -
self.setGeometry(...)
: Đặt vị trí và kích thước cho cửa sổ. -
layout = QVBoxLayout()
: Tạo layout dạng hộp dọc. -
self.username_label = QLabel('...')
: Tạo label và trường nhập liệu cho tên người dùng. -
self.password_input.setEchoMode(...)
: Thiết lập chế độ hiển thị mật khẩu. -
self.login_button.clicked.connect(...)
: Kết nối sự kiện khi nhấn nút đăng nhập. -
def login(self)
: Định nghĩa hàmlogin
xử lý sự kiện khi nhấn nút. -
QMessageBox.information(...)
: Hiển thị thông báo khi đăng nhập thành công hoặc lỗi.
Yêu cầu hệ thống:
- Python 3.9 trở lên
- PyQT6
Cách cài đặt các thư viện để chạy được đoạn mã Python trên:
Sử dụng pip để cài đặt PyQt6:
pip install PyQt6
Lời khuyên:
- Bạn có thể mở rộng form đăng nhập với nhiều tính năng hơn như kiểm tra dữ liệu từ cơ sở dữ liệu.
- Xem xét cách mã hóa mật khẩu để tăng cường bảo mật cho ứng dụng của bạn.