编程学习网 > 编程语言 > Python > Python教程:Python调用 PyQt5做系统登录
2023
12-21

Python教程:Python调用 PyQt5做系统登录


登录是系统软件常用的一个操作,今天我们就带大家一起学习一下怎么使用PyQt5做系统登录。

我们先了解一下PyQt5。讲PyQt5前,我们要知道Qt。Qt(音同 cute)是一个跨平台的C++开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。但Qt是纯C++开发的。PyQt5是基于图形程序框架Qt5的Python语言实现,由一组Python模块构成。PyQt5可以用来代替Python内置的Tkinter。其它替代者还有PyGTK、wxPython等,与Qt一样,PyQt是一个自由软件。
所以我们用Python做界面软件,除了前面的Tkinter也可以使用今天学习的PyQt5。
先上一下软件界面。


编写过程
1.引入所需的库文件,假如缺失的,自己使用pip insatll命令补齐。
import sys  # 系统参数操作
from PyQt5.QtWidgets import *  # 模块包含创造经典桌面风格的用户界面提供了一套UI元素的类
from PyQt5.QtCore import *  # 此模块用于处理时间、文件和目录、各种数据类型、流、URL、MIME类型、线程或进程
from PyQt5.QtGui import *  # 含类窗口系统集成、事件处理、二维图形、基本成像、字体和文本
from PyQt5.QtWidgets import QApplication, QLabel
2.定义主窗口类,主要是登录进去要显示的内容。
class MainWindow(QMainWindow):
    def __init__(self, *args, **kwargs):
        '''
        构造函数,初始化参数属性
        :param args:
        :param kwargs:
        '''
        super().__init__(*args, **kwargs)
        self.setWindowTitle('系统主页')
        self.Mainlabel = QLabel("欢迎登录主页!",self)
        self.Mainframe = QFrame(self)  # 初始化 Frame对象
        self.MainverticalLayout = QVBoxLayout(self.Mainframe)  # 设置横向布局
        self.MainverticalLayout.addWidget(self.Mainlabel)
        self.setFixedWidth(600)
        self.setFixedHeight(600)
3.定义登录窗口类,主要存放输入框和登录、返回按钮和登录验证和跳转事件。
class LoginDialog(QDialog):
    def __init__(self, *args, **kwargs):
        '''
        构造函数,初始化登录对话框的内容
        :param args:
        :param kwargs:
        '''
        super().__init__(*args, **kwargs)
        self.setWindowTitle('欢迎登录')  # 设置标题
        self.resize(300, 300)  # 设置宽、高
        self.setFixedSize(self.width(), self.height())
        self.setWindowFlags(Qt.WindowCloseButtonHint)  # 设置隐藏关闭X的按钮

        '''
        定义界面控件设置
        '''
        self.frame = QFrame(self)  # 初始化 Frame对象
        self.verticalLayout = QVBoxLayout(self.frame)  # 设置横向布局
        self.verticalLayout

        self.login_id = QLineEdit()  # 定义用户名输入框
        self.login_id.setPlaceholderText("请输入登录账号")  # 设置默认显示的提示语
        self.verticalLayout.addWidget(self.login_id)  # 将该登录账户设置添加到页面控件
        self.login_id.setFixedSize(270, 40)
        self.passwd = QLineEdit()  # 定义密码输入框
        self.passwd.setPlaceholderText("请输入登录密码")  # 设置默认显示的提示语
        self.verticalLayout.addWidget(self.passwd)  # 将该登录密码设置添加到页面控件
        self.passwd.setFixedSize(270, 40)
        self.button_enter = QPushButton()  # 定义登录按钮
        self.button_enter.setText("登录")  # 按钮显示值为登录
        self.verticalLayout.addWidget(self.button_enter)  # 将按钮添加到页面控件
        self.button_enter.setFixedSize(270, 40)

        self.button_quit = QPushButton()  # 定义返回按钮
        self.button_quit.setText("返回")  # 按钮显示值为返回
        self.verticalLayout.addWidget(self.button_quit)  # 将按钮添加到页面控件
        self.button_quit.setFixedSize(270, 40)
        # 绑定按钮事件
        self.button_enter.clicked.connect(self.button_enter_verify)
        self.button_quit.clicked.connect(
            QCoreApplication.instance().quit)  # 返回按钮绑定到退出

    def button_enter_verify(self):
        # 校验账号是否正确
        if self.login_id.text() != "moneyge":
            print("账号不正确,请重新输入正确账号密码!")
            return
        # 校验密码是否正确
        if self.passwd.text() != "moneyge666":
            print("密码不正确")
            return
        # 验证通过,设置QDialog对象状态为允许
        self.accept()
4.调用主函数入口,启动系统登录页面。
if __name__ == "__main__":
    # 创建应用
    window_application = QApplication(sys.argv)
    # 设置登录窗口
    login_ui = LoginDialog()
    # 校验是否验证通过
    if login_ui.exec_() == QDialog.Accepted:
        # 初始化主功能窗口
        main_window = MainWindow()
        # 展示窗口
        main_window.show()
        # 设置应用退出

        sys.exit(window_application.exec_())

以上就是Python教程:Python调用 PyQt5做系统登录的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取