【Python】使用PyQt6创建简单的登录界面

使用PyQt6创建简单的登录界面

介绍

PyQt6是Python绑定的Qt库,可以用来开发跨平台的桌面应用程序。本教程将介绍如何使用PyQt6创建一个简单的登录界面,包括用户名和密码输入框以及登录按钮。当用户点击登录按钮时,程序会验证输入的凭据并显示相应的消息。

环境准备

在开始之前,请确保已经安装了PyQt6库。如果还没有安装,可以使用以下命令进行安装:

pip install PyQt6

实现步骤

1. 导入必要的模块

首先,我们需要导入PyQt6的相关模块:

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout, QMessageBox

2. 创建登录窗口类

接下来,我们创建一个LoginWindow类,继承自QWidget。这个类将包含登录界面的所有组件:

class LoginWindow(QWidget):
    def __init__(self):
        super().__init__()

        self.setWindowTitle('Login')
        self.setGeometry(100, 100, 300, 200)

        layout = QVBoxLayout()

        self.label_username = QLabel('Username:')
        self.textbox_username = QLineEdit()
        layout.addWidget(self.label_username)
        layout.addWidget(self.textbox_username)

        self.label_password = QLabel('Password:')
        self.textbox_password = QLineEdit()
        self.textbox_password.setEchoMode(QLineEdit.EchoMode.Password)
        layout.addWidget(self.label_password)
        layout.addWidget(self.textbox_password)

        self.button_login = QPushButton('Login')
        self.button_login.clicked.connect(self.check_login)
        layout.addWidget(self.button_login)

        self.setLayout(layout)

    def check_login(self):
        username = self.textbox_username.text()
        password = self.textbox_password.text()

        # Replace with actual credential checking
        if username == 'admin' and password == 'password':
            QMessageBox.information(self, 'Success', 'Login Successful')
        else:
            QMessageBox.warning(self, 'Error', 'Incorrect Username or Password')

3. 检查登录凭据

LoginWindow类中,我们定义了一个名为check_login的方法,用于验证用户名和密码是否正确。在这个示例中,我们使用了硬编码的用户名和密码作为凭据检查。

def check_login(self):
    username = self.textbox_username.text()
    password = self.textbox_password.text()

    # Replace with actual credential checking
    if username == 'admin' and password == 'password':
        QMessageBox.information(self, 'Success', 'Login Successful')
    else:
        QMessageBox.warning(self, 'Error', 'Incorrect Username or Password')

4. 初始化应用程序并显示登录窗口

最后,我们编写main函数来初始化应用程序并显示登录窗口:

def main():
    app = QApplication(sys.argv)
    window = LoginWindow()
    window.show()
    sys.exit(app.exec())

main函数中,我们创建了QApplication实例,初始化LoginWindow对象,并使用show方法显示窗口。使用sys.exit(app.exec())来确保程序能够干净地退出。

5. 运行程序

确保在脚本的最后添加以下代码,以便直接运行程序:

if __name__ == '__main__':
    main()

完整代码

以下是完整的代码示例:

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout, QMessageBox

class LoginWindow(QWidget):
    def __init__(self):
        super().__init__()

        self.setWindowTitle('Login')
        self.setGeometry(100, 100, 300, 200)

        layout = QVBoxLayout()

        self.label_username = QLabel('Username:')
        self.textbox_username = QLineEdit()
        layout.addWidget(self.label_username)
        layout.addWidget(self.textbox_username)

        self.label_password = QLabel('Password:')
        self.textbox_password = QLineEdit()
        self.textbox_password.setEchoMode(QLineEdit.EchoMode.Password)
        layout.addWidget(self.label_password)
        layout.addWidget(self.textbox_password)

        self.button_login = QPushButton('Login')
        self.button_login.clicked.connect(self.check_login)
        layout.addWidget(self.button_login)

        self.setLayout(layout)

    def check_login(self):
        username = self.textbox_username.text()
        password = self.textbox_password.text()

        # Replace with actual credential checking
        if username == 'admin' and password == 'password':
            QMessageBox.information(self, 'Success', 'Login Successful')
        else:
            QMessageBox.warning(self, 'Error', 'Incorrect Username or Password')

def main():
    app = QApplication(sys.argv)
    window = LoginWindow()
    window.show()
    sys.exit(app.exec())

if __name__ == '__main__':
    main()

运行截图

  • 界面展示
    在这里插入图片描述
  • 登录错误
    在这里插入图片描述
  • 登录成功

在这里插入图片描述

结论

如何使用PyQt6创建一个简单的登录界面。示例中的凭据检查是硬编码的,在实际应用中,将其替换为更复杂的身份验证机制,比如数据库查询或API调用。

相关推荐

  1. PyQt创建界面

    2024-07-12 09:02:02       54 阅读
  2. Pyqt python 界面代码

    2024-07-12 09:02:02       52 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 09:02:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 09:02:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 09:02:02       58 阅读
  4. Python语言-面向对象

    2024-07-12 09:02:02       69 阅读

热门阅读

  1. vue + Lodop 实现浏览器自动打印 无需预览打印

    2024-07-12 09:02:02       29 阅读
  2. 服务器,云、边缘计算概念简单理解

    2024-07-12 09:02:02       21 阅读
  3. 序列化Serialization

    2024-07-12 09:02:02       23 阅读
  4. jEasyUI 创建折叠面板

    2024-07-12 09:02:02       21 阅读
  5. Postman超时设置全指南:掌控请求等待的艺术

    2024-07-12 09:02:02       36 阅读