【PySide6】实现登录界面向主界面跳转
话不多说,先看看我的结果
注册页面
登录页面
看我如何大显神通,代码如下
第一步:创造ui文件(自己做,这里没有)和SI对象
from PySide6.QtUiTools import QUiLoader
from PySide6.QtWidgets import QMessageBox
class SI:
mainWin = None
loginWin=None
RegistWin=None
display_cons_Win=None
第二步:创建数据库表(自己做,这里没有)
第三:创建py文件,创建一个SQL()类,写登录和注册的方法
import pandas as pd
import pymysql as pm
//获取mysql连接
con = pm.connect (
host='localhost',
port=3306,
user='root',
password='123456',
database='flowers'
)
cur = con.cursor ()
# 连接数据库--用户consumer表
class SQL:
# 登录这一部分可以使用数据路,但是,为了装逼,我用pandas
def login(self, no, name):
sql = "select * from consumer"
cur.execute (sql)
global pdf
pdf = pd.read_sql (sql, con)
for i in range (0, len (pdf), 1):
if pdf.loc[i, 'consumer_no'] == str (no) and pdf.loc[i, 'consumer_name'] == str (name):
return False
# print ('登录成功:')
# print (pdf.loc[i, ['consumer_no', 'consumer_name', 'consumer_phone', 'consumer_address']])
else:
return True
# print ('登录失败')
# 注册页面的实现
def regist(self, no, name, phone, add):
# 如果能够成功登录,说明
if (self.login (no, name) == True):
sql2 = 'INSERT INTO consumer(`consumer_no`,`consumer_name`,`consumer_phone`,`consumer_address`)VALUES(%s,%s,%s,%s)'
cur.execute (sql2, [no, name, phone, add])
print("插入成功")
con.commit ()
cur.close ()
con.close ()
return False
else:
return True
第四步:创建类StaS()和Res(),分别对应登录和注册
import pymysql
from PySide6.QtUiTools import *
from PySide6.QtWidgets import *
from 基于pandas的花店管理系统.后端.SQL import SQL
# 登录类
from 基于pandas的花店管理系统.后端.share import SI
# 以下代码都是工具,si.py是对象,实例化的工具,sql是数据库对象的工具
con = pymysql.connect (
host='localhost',
port=3306,
user='root',
password='123456',
database='flowers'
)
cur=con.cursor()
class Stats:
def __init__(self):
# 从文件中加载UI定义
# 从 UI 定义中动态 创建一个相应的窗口对象
# 注意:里面的控件对象也成为窗口对象的属性了
# 比如 self.ui.button , self.ui.textEdit
self.ui = QUiLoader().load("../UI/login界面.ui")
self.ui.tbn.clicked.connect(self.onSignIn)
def onSignIn(self):
password=self.ui.edit_pwd.text()
username=self.ui.edit_name.text()
if(window().alert(SQL().login(password,username),'登录')==False):
SI.mainWin=window()
SI.mainWin.ui.show();
# 关闭当前窗口
self.ui.close
# 注册类
class Reg:
def __init__(self):
self.ui = QUiLoader().load("../UI/register.ui")
self.ui.sub.clicked.connect(self.onRegistIn)
def onRegistIn(self):
name = self.ui.username.text()
pwd = self.ui.userpwd.text()
phone = self.ui.phone.text()
add= self.ui.address.currentText()
if window.alert(SQL().regist(pwd,name,phone,add),'注册')==False:
#注册完进入登录页面,登录成功才能进入主页面
SI.mainWin=window()
# 对象SI.loginWIN的属性ui调用show()
SI.mainWin.ui.show()
# 关闭当前窗口
self.ui.close()
第五步:创建一个类,用来执行以上的代码
if __name__ == '__main__':
app = QApplication ([])
SI.RegistWin = Stats()
SI.RegistWin.ui.show ()
app.exec()
转自 https://blog.csdn.net/m0_56315670/article/details/122903323