pyqt5 调用子窗口跳转,解决闪退问题
作者:互联网
顺便整理一下目录,逻辑分离。
新建项目,包含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文件,生成不影响逻辑。
标签:__,ussd,self,py,pyqt5,Ui,跳转,import,闪退 来源: https://www.cnblogs.com/rainny/p/14237267.html