【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

posted @ 2024-04-17 10:33  MasonLee  阅读(226)  评论(0编辑  收藏  举报