2016-11-03 2 views
1

У меня есть диалоговое окно входа в систему и главное окно. Когда я вхожу в систему, «успех» должен закрыть диалоговое окно входа в систему и открыть главное окно. Теперь, когда я вхожу в систему, главное окно открыто, но диалоговое окно входа в систему не закрывается. Но если я попытаюсь закрыть его, но и диалог, и окно закрываются. Я хочу оставить окно открытым и закрыть диалоговое окно входа в систему.PyQt5: открыть главное окно и закрыть диалоговое окно

loginDialogStartup.py:

class LoginDialogStartup(Ui_Dialog): 
    def __init__(self, dialog): 
     Ui_Dialog.__init__(self) 
     self.setupUi(dialog) 
     self.loginbtn.clicked.connect(self.doLogin) 
     self.cancelbtn.clicked.connect(self.closeEvent) 
    def closeEvent(self, event): 
     print("Closing") 
     self.destory() 
    def doLogin(self): 
     username = self.usernameinput.text() 
     password = self.passwordinput.text() 
     if validLogin(username, password): 
      self.window = QtWidgets.QMainWindow() 
      MainWindowStartup(self.window) 
      self.window.show() 
      self.loginbtn.clicked.connect(self, Qt.SIGNAL('triggered()'), self.closeEvent) 
     else: 
      self.statuplabel.setText("NO") 

if __name__ == '__main__': 

    app = QtWidgets.QApplication(sys.argv) 
    dialog = QtWidgets.QDialog() 
    prog = LoginDialogStartup(dialog) 
    dialog.show() 
    sys.exit(app.exec_()) 

MainWindowStartup.py:

class MainWindowStartup(Ui_MainWindow): 
    def __init__(self, window): 
     Ui_MainWindow.__init__(self) 
     self.setupUi(window) 

if __name__ == '__main__': 

    app = QtWidgets.QApplication(sys.argv) 
    window = QtWidgets.QMainWindow() 
    prog = MainWindowStartup(window) 
    window.show() 
    app.exec_() 

ответ

1

Я нашел решение:

def doLogin(self): 
    username = self.usernameinput.text() 
    password = self.passwordinput.text() 
    if validLogin(username, password): 
     dialog.hide() 
     self.window = QtWidgets.QMainWindow() 
     MainWindowStartup(self.window) 
     self.window.show() 

Я просто добавил:

dialog.hide() 

перед тем, как открыть другое окно.

Смежные вопросы