两种情况下会跳转回登录界面,一是点击取消,二是注册成功。这时不能向上面跳转到注册界面这么简单直接跳回登录界面,那样会造成线程死亡跳转失败。我们要将登录界面当做主窗口,注册界面当做子窗口,子窗口只发信号,主窗口执行操作。
call_regist.py完整代码
from PyQt5.QtWidgets import *
from Login_module.regist import Ui_RegistUi
from PyQt5.QtCore import pyqtSignal,Qt
from Login_module.Con_MySQL import*
class MainRegistWindow(QWidget, Ui_RegistUi):
SuccessReg = pyqtSignal()
def __init__(self, parent=None):
super(MainRegistWindow, self).__init__(parent)
self.setupUi(self)
self.initUI()
def initUI(self):
self.ReginAccount.setFocus()
self.ReginAccount.setPlaceholderText("请输入注册账户")
self.UserName.setPlaceholderText("请输入姓名")
self.PassWord.setPlaceholderText("请输入密码")
self.PassWordSure.setPlaceholderText("请确认密码")
self.PassWord.setEchoMode(QLineEdit.Password)
self.PassWordSure.setEchoMode(QLineEdit.Password)
self.comboBox.setCurrentIndex(0)
self.comboBox.activated.connect(self.emit_identity)
self.ReginAccount.textChanged.connect(self.emit_Account)
self.UserName.textChanged.connect(self.emit_Username)
self.PassWord.textChanged.connect(self.emit_Password)
self.PassWordSure.textChanged.connect(self.emit_ConPassword)
self.ConfirmButton.clicked.connect(self.emit_Confir_Button)
self.CancelButton.clicked.connect(self.emit_Cancel)
def emit_Account(self):
print("Account发生改变")
def emit_Username(self):
print("UserName发生改变")
def emit_Password(self):
print("PassWord发生改变")
def emit_ConPassword(self):
print("ConPassword发生改变")
def emit_identity(self):
print(self.comboBox.currentText())
def emit_Confir_Button(self):
if self.comboBox.currentText().strip() == '' or self.ReginAccount.text().strip() == '' or self.PassWordSure.text().strip() == '' \
or self.PassWord.text().strip() == '' or self.UserName.text().strip() == '':
try:
QMessageBox.information(self, "error", "输入有误,请重新输入")
except Exception as str:
print("输入错误 %s" % (str))
elif len(self.PassWord.text()) < 6:
QMessageBox.information(self, "warning", "密码小于6位")
elif self.PassWord.text() != self.PassWordSure.text():
try:
QMessageBox.information(self, "error", "两次密码输入不一致")
except Exception as str:
print("未知错误 %s" % (str))
else:
sql = Oper_Mysql()
query = QSqlQuery()
M_UserID = self.ReginAccount.text()
M_UserName = self.UserName.text()
M_PassWord = self.PassWord.text()
M_UserRole = self.comboBox.currentText()
s = query.exec_(
"insert into management(M_UserID, M_UserName, M_PassWord, M_UserRole) values('%s', '%s', '%s', '%s')" % (
M_UserID, M_UserName, M_PassWord, M_UserRole))
if s:
QMessageBox.information(self, "QAQ", "注册成功")
else:
QMessageBox.information(self, "QAQ", "注册失败, 该账户已经存在")
self.SuccessReg.emit()
def emit_Cancel(self):
self.SuccessReg.emit()
有很多人私信才放的代码,上学时候写的,写的很不好就直接放这边了,有需要自己下,数据库环境需要自己配置,怎么配置请百度。
通过百度网盘分享的文件:登录界面.rar
链接:https://pan.baidu.com/s/1nZyaduQmUfbrUb7Ng0V6hA
提取码:w6bA
复制这段内容打开「百度网盘APP 即可获取」
使用Qtdesigner设计ui界面,实行界面分离,分别设计两个界面,一个是登录的界面,一个是主界面
然后新建一个Python文件,在文件中分别将这两个界面UI引入,分别创建两个类,一个是实现登录显示的类,另一个是实现主界面显示的类。
创建两个类,主窗口类
登录窗口类
最后使用一个main函数,在这个函数中实例化登录窗口类,显示登录窗口
然后在登录窗口中实例化主窗口类,使用主窗口类.show()方法进行显示主窗口,并且关闭原来的登录窗口
二、将两个类分别写在两个Python文件夹中
创建两个不同的或者相同的窗口类,然后在登录窗口中
客服端登录页面实现功能:
1、检查是否存在已注册用户数据,如无用户数据,提醒注册。
2、登录时检查用户ID及密码,提示错误信息:用户不存在,密码错误。
3、提供记住用户名,用户密码,用户自动登录功能,并可以在三种模式下切换。
客户端注册页面实现功能:
1、用户注册,保存注册成功用户数据。
2、检验用户ID,ID只能为字母与数字,不允许中文或其他特殊字符。
3、检查注册用户ID是否已存在,存在时拒绝注册。
4、检查用户密码,用户密码为6-10为字母数字,且首位必须为大写字母。
5、检查两次输入密码是否相同,不相同则提示,拒绝注册。
6、收集用户其他数据,昵称,性别。为可选填对象。
7、如昵称信息未填写,自动分配一个昵称给用户,作为默认昵称。
其中,<欢迎使用XXXX软件><管理员><密码>使用的是左边功能的 label 类、<登录>使用的是左边功能的 Push Button 类、<管理员和密码>的输入使用的是左边功能的 Line Edit 类。这些输出显示和按键功能中的字体大小和边框都可以对应根..
from PyQt5.QtCore import *
from PyQt5.QtGui import *
################################################
#######创建主窗口
#############################.
class Ui_register_pane(object):
def setupUi(self, register_pane):
register_pane.setObjectName("register_pane")
register_pane.resize(520, 450)
今天给大家分享一个十分不错的pyqt5实现的登录界面,很像qq的登录界面,你可以将此登录界面用到自己的项目中,甚至完全不用修改,只需在自己项目中运行该py文件即可,在输入正确的账号和密码后,就可以进入的自己的主界面。
1、效果图:
2、视频效果图
西瓜视频——pyqt5实现登录界面
3、代码说明
首先最开始,我们自己用代码编写了一个标题栏,用于美化我们的登录界面,但是这个和你主界面的并无关系。在代码190行第载入了一张图片,这个图片你可以随意改变。
palette1.setBrush(self.backg
提示:这里可以添加本文要记录的大概内容:
有同学刚开始学习pyqt5想实现一个注册与登录功能,并且登录完成之后想要跳转界面,但是网上资源太多,详细能够跑成功的代码还要自己筛选,由于项目需要,我自己实现了一个简单的注册,登录,以及登录跳转功能,注册是简单的存放在ini文件中的,登录是从ini文件中取用户名和密码,这个简单的功能,大家来看看是怎么实现的吧,废话不说,直接
1、QtDesigner里绘制UI界面并设置属性
布局根据个人喜好,部件颜色、字体、背景属性在styleSheet里设置。
2、材料转换(将.ui文件转.py,.qrc文件转_rc.py)
通过PyUIC和PyRcc即可完成。
这个没安装的可以参考这篇文章:
Pycharm 中配置pyqt5.d