顺便整理一下目录,逻辑分离。
新建项目,包含main.py
1.新建ui文件夹,用designer生成的UI文件两个:login.py ussd.py
2.新建logic文件夹,处理每个界面的逻辑:分别为login.py ussd.py
整体架构如下:
main.py写入入口:
from PyQt5.QtWidgets import *
from logic.login import Login
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
Ui_Login=Login()
Ui_Login.show()#调用登录窗口
sys.exit(app.exec_())
logic/login.py
from ui.login import Ui_LoginWindow
from PyQt5.QtWidgets import *
from api.auth import loginres
from logic.ussd import Ussd
class Login(QMainWindow,Ui_LoginWindow):
def __init__(self):
super(Login,self).__init__()
self.setupUi(self)
self.pushButton.clicked.connect(self.loginhandle)
def loginhandle(self):
res = loginres(self.lineEdit.text(), self.lineEdit_2.text())
self.statusBar.showMessage(res['msg'])
if res['code']==1:
self.ussd = Ussd()#调用主窗口,一定要用self.,否则会闪退
self.ussd.show()
self.close()
logic/ussd.py
from ui.ussd import Ui_MainWindow
from PyQt5.QtWidgets import *
class Ussd(QMainWindow,Ui_MainWindow):
def __init__(self):
super(Ussd,self).__init__()
self.setupUi(self)
成功实现登录成功后跳转,好处是可以随时修改UI文件,生成不影响逻辑。