PyQt5实现用户登录GUI界面及登录后跳转
作者:Python集中营 时间:2021-04-08 07:50:03
PyQt5是强大的GUI工具之一,通过其可以实现优秀的桌面应用程序。希望通过一个简单的登录页面可以让大家顺利入坑,如有不妥之处还请大佬指点改正!
导入业务需要的所有的扩展包。
import sys # 系统参数操作
from PyQt5.QtWidgets import * # 模块包含创造经典桌面风格的用户界面提供了一套UI元素的类
from PyQt5.QtCore import * # 此模块用于处理时间、文件和目录、各种数据类型、流、URL、MIME类型、线程或进程
from PyQt5.QtGui import * # 含类窗口系统集成、事件处理、二维图形、基本成像、字体和文本
创建主界面窗口。
class MainWindow(QMainWindow):
def __init__(self, *args, **kwargs):
'''
构造函数,初始化参数属性
:param args:
:param kwargs:
'''
super().__init__(*args, **kwargs)
self.setWindowTitle('主功能页面')
self.setFixedWidth(600)
self.setFixedHeight(600)
创建登录对话框。
class LoginDialog(QDialog):
def __init__(self, *args, **kwargs):
'''
构造函数,初始化登录对话框的内容
:param args:
:param kwargs:
'''
super().__init__(*args, **kwargs)
self.setWindowTitle('欢迎登录') # 设置标题
self.resize(200, 200) # 设置宽、高
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.passwd = QLineEdit() # 定义密码输入框
self.passwd.setPlaceholderText("请输入登录密码") # 设置默认显示的提示语
self.verticalLayout.addWidget(self.passwd) # 将该登录密码设置添加到页面控件
self.button_enter = QPushButton() # 定义登录按钮
self.button_enter.setText("登录") # 按钮显示值为登录
self.verticalLayout.addWidget(self.button_enter) # 将按钮添加到页面控件
self.button_quit = QPushButton() # 定义返回按钮
self.button_quit.setText("返回") # 按钮显示值为返回
self.verticalLayout.addWidget(self.button_quit) # 将按钮添加到页面控件
# 绑定按钮事件
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() != "admin":
print("test1")
return
# 校验密码是否正确
if self.passwd.text() != "admin@1234":
print("test2")
return
# 验证通过,设置QDialog对象状态为允许
self.accept()
最后通过mian入口函数启动应用。
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_())
来源:https://www.cnblogs.com/lwsbc/p/15525984.html
标签:PyQt5,登录,GUI界面
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
django 扩展user用户字段inlines方式
2022-02-28 00:50:14
python实现按关键字筛选日志文件
2022-12-28 21:45:49
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2022-01-08 22:43:21
![](https://img.aspxhome.com/file/2023/6/95766_0s.png)
关于浏览器的一些观点
2008-08-06 12:48:00
![](https://img.aspxhome.com/file/UploadPic/20088/6/200886125027461s.gif)
最强大最好最全的javascript 验证表单的例子
2010-03-14 11:26:00
Selenium多窗口切换解决方案
2021-07-06 14:56:33
![](https://img.aspxhome.com/file/2023/3/95683_0s.png)
简单介绍Python的Django框架的dj-scaffold项目
2021-11-01 07:18:05
Anaconda下配置python+opencv+contribx的实例讲解
2021-04-10 21:28:33
![](https://img.aspxhome.com/file/2023/6/100276_0s.jpg)
Perl命令行应用程序详解
2023-08-09 19:01:18
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2023-04-08 07:21:28
![](https://img.aspxhome.com/file/2023/1/75951_0s.jpg)
Django的分页器实例(paginator)
2023-06-23 03:22:35
python字符串替换re.sub()方法解析
2022-02-14 16:51:42
页面新开窗口的一点补充
2008-09-10 12:57:00
Django调用支付宝接口代码实例详解
2023-07-19 10:53:51
WAP2.0网页设计中的交互细节
2010-08-12 20:50:00
![](https://img.aspxhome.com/file/UploadPic/20108/12/01-47s.jpg)
Python3中条件控制、循环与函数的简易教程
2021-06-09 18:22:54
![](https://img.aspxhome.com/file/2023/8/102978_0s.png)
Django后端接收嵌套Json数据及解析详解
2021-04-24 20:11:38
![](https://img.aspxhome.com/file/2023/1/105711_0s.png)
XMLHTTP资料
2008-09-05 17:20:00
python 接口测试response返回数据对比的方法
2023-10-12 14:01:31
python编程线性回归代码示例
2021-06-07 07:53:16
![](https://img.aspxhome.com/file/2023/2/95722_0s.png)