python GUI 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文件,生成不影响逻辑。

 

posted @ 2021-01-05 18:00  程序员改变世界  阅读(2063)  评论(0)    收藏  举报