Окно открывается при втором клике
Есть код для открытия следующего окна, раньше оно открывалось, но при перемещении этой строки вниз по коду, она стала открываться только со второго щелчка.
def __init__(self):
super(Testirovanie, self).__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.pushButton.clicked.connect(self.add_new_transaction)
#self.ui.pushButton.clicked.connect(self.open_second_window)
self.conn = Data()
self.second_window = None
def add_new_transaction(self):
name = self.ui.nameEdit.text()
famka = self.ui.famEdit.text()
gruppa = self.ui.grupEdit.text()
if name == '' or famka == '' or gruppa == '':
msg4 = QMessageBox()
msg4.setWindowTitle('Внимание')
msg4.setText('Вы заполнили данные не до конца. Проверьте поля для заполнения.')
msg4.setIcon(QMessageBox.Warning)
msg4.setStyleSheet(u"background-color:#6495ED")
msg4.exec()
if name != '' and famka != '' and gruppa != '':
msg = QMessageBox()
msg.setText("Теперь можете закрывать это окно")
msg.setWindowTitle("Данные занесены")
msg.setIcon(QMessageBox.Information)
msg.setStyleSheet(u"background-color:#6495ED")
msg.exec()
self.ui.pushButton.clicked.connect(self.open_second_window)
self.conn.add_new_transcation(name, famka, gruppa)
def open_second_window(self):
self.close()
self.second_window = ttestirovanie_window()
self.second_window.show()
Речь идет про self.ui.pushButton.clicked.connect(self.open_second_window)
, которая изначально находилась в def __init__
и прекрасно работала, но не так как мне надо. я переместил ее в def add_new_transaction
, а конкретнее в условие, но тут она работает только по второму щелчку(т.е. открывается QMessageBox, в котором содержится информация, я нажимаю на ОК, этот QMessageBox закрывается, и второе окно не открывается. Нажимаю еще раз на кнопку сохранения, опять открывается QMessageBox, я его закрываю и только тогда открывается второе окно)
Ответы (1 шт):
self.ui.pushButton.clicked.connect(self.open_second_window)
эту строчку надо переделать в msg.finished.connect(self.open_second_window)
и все заработало