我正在为我的论文使用Qt creator创建一个GUI。我正在研究按钮的功能,以转到一个窗口并返回到上一个窗口。在
我已经完成了去另一个窗口的功能。在
我无法返回上一个窗口。我总是得到错误formTrain.hide()
未定义。在
如何解决此错误?在
主窗口代码
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from testsys_auto import Ui_testsys
from trainsys_auto import *
class Ui_MainWindow(object):
def trainsys(self):
self.trainwin = QtWidgets.QMainWindow()
self.ui = Ui_trainsys()
self.ui.setupUi(self.trainwin)
formMain.hide()
self.trainwin.show()
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(405, 307)
self.centralWidget = QtWidgets.QWidget(MainWindow)
self.centralWidget.setObjectName("centralWidget")
self.verticalLayoutWidget = QtWidgets.QWidget(self.centralWidget)
self.verticalLayoutWidget.setGeometry(QtCore.QRect(110, 120, 160, 107))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.btn_TrainSys = QtWidgets.QPushButton(self.verticalLayoutWidget)
self.btn_TrainSys.setObjectName("btn_TrainSys")
self.verticalLayout.addWidget(self.btn_TrainSys)
self.btn_TrainSys.clicked.connect(self.trainsys)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Home Screen"))
self.btn_TrainSys.setText(_translate("MainWindow", "Train System"))
self.label.setText(_translate("MainWindow", "Diabetic Retinopathy Detection"))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
formMain = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(formMain)
formMain.show()
sys.exit(app.exec_())
用于trainsys
窗口的代码
最好不要修改Qt Designer生成的类,如果您是初学者,永远不要修改这些代码。最简单、最优雅的方法是创建实现逻辑的类并使用初始类的设计。在
假设在使用Qt Designer创建视图时使用了主窗口模板,则实现该逻辑的类应具有以下形式:
在您的案例中,返回的逻辑是隐藏当前窗口并显示窗口,为此,我们创建以下函数:
^{pr2}$然后我们使用lambda函数在单击每个按钮时调用它们:
注意:如果修改了这些类,则只需在pyuic的帮助下使用.ui文件生成返回。在
相关问题 更多 >
编程相关推荐