【发布时间】:2017-09-03 08:48:19
【问题描述】:
我正在使用 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 窗口的代码
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from mainwindow1 import *
class Ui_trainsys(object):
def backhome(self):
self.backwin = QtWidgets.QMainWindow()
self.ui = Ui_MainWindow()
self.ui.setupUi(self.backwin)
formTrain.hide()
self.backwin.show()
def setupUi(self, trainsys):
self.btn_Backtrain = QtWidgets.QPushButton(self.verticalLayoutWidget)
self.btn_Backtrain.setObjectName("btn_Backtrain")
self.btn_Backtrain.clicked.connect(self.backhome)
def retranslateUi(self, trainsys):
_translate = QtCore.QCoreApplication.translate
trainsys.setWindowTitle(_translate("trainsys", "Train System")
self.btn_Backtrain.setText(_translate("trainsys", "Back to Home Screen"))
self.label.setText(_translate("trainsys", "Train System"))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
formTrain = QtWidgets.QMainWindow()
ui = Ui_trainsys()
ui.setupUi(formTrain)
formTrain.show()
sys.exit(app.exec_())
【问题讨论】: