登录是系统软件常用的一个操作,今天我们就带大家一起学习一下怎么使用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教程欢迎持续关注编程学习网。
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/11679/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取