I have two windows window 1 > login , window 2 > my app
now when I try when user is successfully authenticated open app window but The new window closes immediately
my login.py:
from mainmof import Ui_MainWindow_login
from send import Ui_MainWindow_send
from PyQt5 import QtCore, QtGui, QtWidgets
from sys import argv ,exit
import mysite
import dialog
class doLogin(QtCore.QThread):
my_signal=QtCore.pyqtSignal(str)
def __init__(self,u,p):
super(doLogin, self).__init__()
self.username=u
self.password=p
def run(self):
self.plogin()
def plogin(self):
obj=mysite.check_userpass() # connect to site and check user pass -> class name
namekarbari= obj.login(self.username,self.password) # connect to site and check user pass
if(namekarbari=='0'): # no internet
self.my_signal.emit(namekarbari)
elif(namekarbari=='-1'): # bad user pass
self.my_signal.emit(namekarbari)
else:
self.my_signal.emit(namekarbari) # user pass check and vallid
def showDialog(message):
D=QtWidgets.QDialog()
uid =dialog.Ui_Dialog(message)
uid.setupUi(D)
D.show()
D.exec_()
return True
def showmainsection(): # here is problem
MainWindow2 = QtWidgets.QMainWindow()
uis = Ui_MainWindow_send()
uis.setupUi(MainWindow2)
MainWindow.hide()
MainWindow2.show()
def showdialogmeassage(nk):
str_noNET= "no internet connection"
str_badInput='user/pass invallid'
if (nk=='0'):
showDialog(str_noNET) # no internet
ui.btn_login.setEnabled(True)
elif(nk=='-1'): # bad username password
showDialog(str_badInput)
ui.btn_login.setEnabled(True)
else:
showDialog(nk)
ui.btn_login.setEnabled(True)
showmainsection() #####****##### open new window
class login():
def login(self):
ui.btn_login.setEnabled(False)
self.username=ui.le_username.text()
self.password=ui.le_password.text()
str_noINPUT='inputs are empty'
if(self.username=='' or self.password==''):
if(showDialog(str_noINPUT)):
ui.btn_login.setEnabled(True)
return
self.thread = doLogin(self.username,self.password)
self.thread.start()
self.thread.my_signal.connect(showdialogmeassage)
if __name__ == "__main__":
app1 = QtWidgets.QApplication(argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow_login()
ui.setupUi(MainWindow)
obj_login=login()
ui.btn_login.clicked.connect(obj_login.login)
MainWindow.show()
exit(app1.exec_())
my new window in a pyqt5 designer file. my login window pyqt5 file is seperate and I prefer to don't change it. mysite file have not graphical code its only manage communicate with server