Python 如何来回多次切换pyqt5对话框?
我想在对话框之间切换多次,但我现在的代码只切换了2次,然后就停止了Python 如何来回多次切换pyqt5对话框?,python,pyqt,pyqt5,Python,Pyqt,Pyqt5,我想在对话框之间切换多次,但我现在的代码只切换了2次,然后就停止了 第一个对话框到第二个对话框(无问题) 从第二个对话框到第一个对话框(无问题) 第一个对话框到第二个对话框(因此,当我再次尝试转到第二个对话框时,代码停止运行) 我尝试过将可见性设置为True和False,而不是关闭对话框,并且还使用dialog.exec_()而不是dialog.exec() 从PyQt5导入QtCore、QtGui、qtwidget 类Ui_对话框(对象): def设置UI(自我,对话框): setObject
从PyQt5导入QtCore、QtGui、qtwidget
类Ui_对话框(对象):
def设置UI(自我,对话框):
setObjectName(“对话框”)
对话框。调整大小(633242)
self.pushButton=qtwidts.QPushButton(对话框)
自身按钮设置几何(QtCore.QRect(120、70、401、81))
self.butdown.setObjectName(“butdown”)
自重传(对话框)
QtCore.QMetaObject.connectSlotsByName(对话框)
self.按钮点击连接(self.第2页)
def第2页(自我):
启动_D2()
def重新传输(自我,对话框):
_translate=QtCore.QCoreApplication.translate
setWindowTitle(_translate(“Dialog”,“Dialog_1”))
self.putton.setText(_translate(“对话框”,“转到第二页”))
类Ui_对话框_2(对象):
def设置UI(自我,对话框):
setObjectName(“对话框”)
对话框。调整大小(633242)
self.pushButton=qtwidts.QPushButton(对话框)
自身按钮设置几何(QtCore.QRect(120、70、401、81))
self.butdown.setObjectName(“butdown”)
自重传(对话框)
QtCore.QMetaObject.connectSlotsByName(对话框)
自我按钮点击连接(自我第1页)
def第1页(自我):
启动_D1()
def重新传输(自我,对话框):
_translate=QtCore.QCoreApplication.translate
setWindowTitle(_translate(“Dialog”,“Dialog_2”))
self.putton.setText(_translate(“对话框”,“转到第一页”))
def start_D2():
尝试:
Dialog.close()
ui=ui_对话框_2()
ui.setupUi(对话框2)
对话框2.exec()
例外情况除外,如e:
打印(e)
def start_D1():
尝试:
对话框2.关闭()
ui=ui\u对话框()
ui.setupUi(对话框)
Dialog.exec()
例外情况除外,如e:
打印(e)
如果名称=“\uuuuu main\uuuuuuuu”:
导入系统
app=qtwidts.QApplication(sys.argv)
Dialog=qtwidts.QDialog()
Dialog_2=qtwidts.QDialog()
ui=ui\u对话框()
ui.setupUi(对话框)
Dialog.show()
sys.exit(app.exec_())
我需要的是在每次单击按钮时切换对话框,而不仅仅是一次或两次。您有以下错误:
- Qt for efficiency不会引发异常,因此不必使用try-except
- PyQt我建议不要修改QtDesigner生成的代码,因为它首先不是一个小部件,它只是一个用来填充小部件的类。相反,您必须创建另一个继承适当小部件的类,并使用初始类填充它。有关更多信息,请阅读
从PyQt5导入QtCore、QtGui、qtwidget
类Ui_对话框(对象):
def设置UI(自我,对话框):
setObjectName(“对话框”)
对话框。调整大小(633242)
self.pushButton=qtwidts.QPushButton(对话框)
自身按钮设置几何(QtCore.QRect(120、70、401、81))
self.butdown.setObjectName(“butdown”)
自重传(对话框)
QtCore.QMetaObject.connectSlotsByName(对话框)
def重新传输(自我,对话框):
_translate=QtCore.QCoreApplication.translate
setWindowTitle(_translate(“Dialog”,“Dialog_1”))
self.putton.setText(_translate(“对话框”,“转到第二页”))
类Ui_对话框_2(对象):
def设置UI(自我,对话框):
setObjectName(“对话框”)
对话框。调整大小(633242)
self.pushButton=qtwidts.QPushButton(对话框)
自身按钮设置几何(QtCore.QRect(120、70、401、81))
self.butdown.setObjectName(“butdown”)
自重传(对话框)
QtCore.QMetaObject.connectSlotsByName(对话框)
def重新传输(自我,对话框):
_translate=QtCore.QCoreApplication.translate
setWindowTitle(_translate(“Dialog”,“Dialog_2”))
self.putton.setText(_translate(“对话框”,“转到第一页”))
类对话框(QtWidgets.QDialog,Ui_对话框):
def uuu init uuu(self,parent=None):
超级(对话框,自我)。\uuuu初始化\uuuuu(父级)
self.setupUi(self)
#关上窗户
self.button.clicked.connect(self.close)
类对话框2(QtWidgets.QDialog,Ui_对话框2):
def uuu init uuu(self,parent=None):
超级(对话框2,自我)。\uuuuu初始化\uuuuuuu(父级)
self.setupUi(self)
#关上窗户
self.button.clicked.connect(self.close)
如果名称=“\uuuuu main\uuuuuuuu”:
导入系统
app=qtwidts.QApplication(sys.argv)
w1=对话框()
w2=对话框2()
#打开另一个对话框
w1.按钮.点击.连接(w2.显示)
w2.按钮.点击.连接(w1.显示)
w1.show()
sys.exit(app.exec_())