Я хочу переключаться между диалоговыми окнами несколько раз, но код, который у меня есть сейчас, выполняет переключение только 2 раза, а затем просто останавливается.
- первый диалог ко второму диалогу (без проблем)
- второй диалог к первому диалогу (без проблем)
- Первый диалог ко второму диалогу (поэтому, когда я снова пытаюсь перейти ко второму диалогу, код перестает работать)
У меня естьпопытался установить видимость Истина и Ложь вместо закрытия диалогового окна, а также использовал Dialog.exec_ () вместо Dialog.exec ()
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(633, 242)
self.pushButton = QtWidgets.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(120, 70, 401, 81))
self.pushButton.setObjectName("pushButton")
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
self.pushButton.clicked.connect(self.page_2)
def page_2(self):
start_D2()
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog_1"))
self.pushButton.setText(_translate("Dialog", "Go to Second Page"))
class Ui_Dialog_2(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(633, 242)
self.pushButton = QtWidgets.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(120, 70, 401, 81))
self.pushButton.setObjectName("pushButton")
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
self.pushButton.clicked.connect(self.page_1)
def page_1(self):
start_D1()
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog_2"))
self.pushButton.setText(_translate("Dialog", "Go to First Page"))
def start_D2():
try:
Dialog.close()
ui = Ui_Dialog_2()
ui.setupUi(Dialog_2)
Dialog_2.exec()
except Exception as e:
print(e)
def start_D1():
try:
Dialog_2.close()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.exec()
except Exception as e:
print(e)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
Dialog_2 = QtWidgets.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
Мне нужно переключать диалоги каждый раз, когда я нажимаюкнопка не один или два раза.