对于初次做GUI程序的人来说,确实登陆窗口程序会造成困惑,以前做Delphi时也有人问过我,好不容易人家才理解清楚,PyQt也是一样的。
一般有两种处理方式:
第一种:在打开主窗体前打开登陆对话框,如果登陆成功,再创建主窗体并打开;
第二种:在创建主窗体后,在显示主窗体前打开登陆对话框,如果登陆成功,显示主窗体,如果失败,不显示主窗体,并退出程序。
我推荐第一种方式,逻辑清晰,并且如果登陆不成功,那么不需要创建主窗体。
先放开登陆对话框不管,最简单的来理解,那么可以我们可以把登陆这个行为理解为一个方法,如果这个方法成功,那么就创建并显示主窗体。说白了和确认对话框一样的 ,确认对话框并不需要你来处理如何创建并打开会对话框,你只要调用这个方法即可,系统会帮你打开对话框。
那么来看代码:
from PyQt4 import QtGui, QtCore
def login():
return True
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
if login():
win = QtGui.QMainWindow()
win.show()
sys.exit(app.exec_())
这段代码应该很好理解,这里定义了这个login方法,你可以试着把返回值设成False,这样主窗体就不会显示了,说明可以达到你的要求了。这里把复杂性都隐 藏到login方法里了,把打开对话框的代码就写在这个方法里面。
# 创建一个Login对话框:
class LoginDialog(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QDialog.__init__(self, parent)
self.user = QtGui.QLineEdit(self)
self.user.move(10, 20)
self.user.setText('admin')
self.pwd = QtGui.QLineEdit(self)
self.pwd.move(10, 60)
self.pwd.setText('admin')
self.pwd.setEchoMode(QtGui.QLineEdit.Password)
loginBtn = QtGui.QPushButton('Login', self)
loginBtn.move(100, 90)
loginBtn.clicked.connect(self.login) # 绑定方法判断用户名和密码
def login(self):
if unicode(self.user.text()) == u'admin' and
unicode(self.pwd.text()) == u'admin':
# 如果用户名和密码正确,关闭对话框,accept()关闭后,如果增加一个取消按钮调用reject()
self.accept()
else:
QtGui.QMessageBox.critical(self, 'Error', 'User name or
password error')
# login方法更改如下:
def login():
dialog = LoginDialog()
if dialog.exec_():
return True
return False
# 当然如果你嫌login方法这样写啰嗦,那么可以直接这样写:
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
dialog = LoginDialog()
if dialog.exec_():
win = QtGui.QMainWindow()
win.show()
sys.exit(app.exec_())
完整代码:
- from PyQt4 import QtGui
- class LoginDialog(QtGui.QDialog):
- def __init__(self, parent=None):
- QtGui.QDialog.__init__(self, parent)
- self.setWindowTitle('login')
- self.user = QtGui.QLineEdit(self)
- self.user.move(10, 20)
- self.user.setText('admin')
- self.pwd = QtGui.QLineEdit(self)
- self.pwd.move(10, 60)
- self.pwd.setText('admin')
- self.pwd.setEchoMode(QtGui.QLineEdit.Password)
- self.loginBtn = QtGui.QPushButton('Login', self)
- self.loginBtn.move(100, 90)
- self.loginBtn.clicked.connect(self.login) # 绑定方法判断用户名和密码
- def login(self):
- if self.user.text() == 'admin' and self.pwd.text() == 'admin':
- # 如果用户名和密码正确,关闭对话框,accept()关闭后,如果增加一个取消按钮调用reject()
- self.accept()
- else:
- QtGui.QMessageBox.critical(self, 'Error', 'User name or password error')
- if __name__ == '__main__':
- import sys
- app = QtGui.QApplication(sys.argv)
- dialog = LoginDialog()
- if dialog.exec_():
- win = QtGui.QMainWindow()
- win.setWindowTitle('MainWindow')
- win.show()
- sys.exit(app.exec_())
相关推荐
本项目"使用python中pyqt6写的登陆界面"展示了如何利用PyQt6构建一个基础的登录界面,包括了布局管理、控件的使用等核心知识点。 首先,我们要了解PyQt6的基础概念。PyQt6是Python的一个模块,它将Qt库的C++接口...
### PyQt5结合PyQtDesigner实现登录界面详解 #### 一、引言 在现代软件开发过程中,GUI(图形用户界面)的设计与实现是一项至关重要的任务。PyQt5作为Python的一个强大的GUI工具包,允许开发者创建出功能丰富且美观...
包含:音乐界面客户端,管理系统客户端,CAD的QT客户端,虚拟币交易所监控客户端,数据分析的客户端,流程图客户端,自动化测试用例编辑器,基于pyside架构的适合自定义开发的客户端,登陆界面客户端,游戏平台...
使用python+PYQT5+pycharm2018开发超市收银系统 这个是登陆跳转代码 GUI代码和罗技代码相互独立,便于后期调整GUI界面布局 使用MYSQL进行user验证 验证成功后跳转到主界面 原则上也可以用在其他的应用上作为登陆跳转...
在PyQt5编程中,构建一个应用程序通常涉及创建多个窗口或界面,比如登录界面和主界面。本问题中,我们探讨的是如何在用户成功登录后从登录界面平滑地过渡到主界面。以下是对实现这一功能的方法的详细解释: 1. **...
4. **布局管理**:为了使界面看起来整洁有序,我们需要使用QLayout(如QVBoxLayout、QHBoxLayout、QGridLayout)来组织这些部件。布局管理器会自动调整控件的位置和大小,确保在不同分辨率的屏幕上都能良好显示。 5...
用pyqt编写的用于本地通讯的登录及注册界面: 客服端登录页面实现功能: 1、检查是否存在已注册用户数据,如无用户数据,提醒注册。 2、登录时检查用户ID及密码,提示错误信息:用户不存在,密码错误。 3、提供记住...
**4. 自定义修改telnetlib**:通过修改`telnetlib`,开发者可能实现了定制的验证机制,比如在升级过程中,通过发送特定命令(如`df -h`来查看磁盘挂载情况),然后解析输出结果来判断设备是否正确挂载了新固件。 **...
在Python的GUI编程领域,PySide和PyQt是...通过学习和实践这样的项目,开发者不仅可以提升PySide或PyQt的使用技能,还能增强对用户界面设计和数据库管理的理解。同时,这也为构建更复杂的Python应用程序奠定了基础。
这是登录界面背景图
在IT行业中,登陆界面设计是用户体验的关键组成部分,它不仅是用户与应用程序交互的起点,也是展现品牌形象和专业性的窗口。在本工程中,我们看到涉及到了多种文件格式,包括PSD(Photoshop文档)、JPG(图像文件)...
以上这篇pyqt5 键盘监听按下enter 就登陆的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:在pyqt5中QLineEdit里面的内容回车发送的实例
从压缩包的文件名“登陆”来看,我们可以推测这是一个关于登录界面的示例。可能包含一个简单的用户名和密码输入框,以及一个登录按钮。在实际应用中,你还需要考虑错误处理、密码安全性、网络通信(如果需要向服务器...
本文实例为大家分享了PyQt5实现登录页面的具体代码,供大家参考,具体内容如下 效果图: python代码: import sys from PyQt5.QtCore import Qt from PyQt5.QtGui import QPixmap, QPainter, QColor, QFont, QIcon ...
登陆界面 ;" /> 输入用户名和密码,可以进行注册或登录操作,注册则保存到user.db数据库中,登录则查询数据库中是否有匹配的username和password 主界面 增加条目: 插入数据条目子界面 删除条目 清空所有数据 ...
标签“python 用户登陆 access”明确了项目的两个关键组件:Python编程语言和Access数据库,表明这个项目涉及到Python的数据库操作以及用户身份验证。 在压缩包的文件列表中: 1. `data.accdb`:这是Microsoft ...
软件功能:软件密码登陆跳转主界面,使用pyqt5开发,qss使用一种暗黑风格渲染
Python数据库系统课程大作业:PyQt5+MySQL的ATM系统项目源码+数据库文件(高分项目).zip 该项目是个人大作业项目源码,评审分达到95分以上,都经过严格调试,确保可以运行!放心下载使用。项目功能基本参照了老师...
QT库是一个跨平台的C++图形用户界面工具包,但这里我们使用了PyQt5,它是Python的一个绑定,使得我们可以用Python来编写QT应用。这个程序实现了用户账户的登录功能以及登录成功后的主界面切换,同时它还涉及到数据库...
本文将详细讲解如何使用Python的PyQt5库来制作一个仿QQ办公版的图形登录界面。 首先,我们需要理解登录界面的基本结构。在分析原始的TIM登录界面后,我们可以将其拆分为两大部分:左侧的宣传图片和右侧的功能按钮...