【发布时间】:2022-01-21 10:37:31
【问题描述】:
我通过一个qt设计器程序创建了一个名为(第一页)的简单文件,并在其中放置了一个名为(登录)的按钮,我还使用相同的程序创建了另一个名为(第二页)的简单文件
运行第一个文件并按下其中的按钮后,我想打开第二个文件,或者换句话说,我想将页面链接在一起。 我怎样才能做到这一点?。请问我需要帮助。
第一个文件代码:
从 PyQt5.QtWidgets 导入 QDialog, QApplication 从 PyQt5 导入 QtCore、QtGui、QtWidgets、uic 类 Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(170, 140, 91, 31))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(12)
font.setBold(True)
font.setItalic(True)
font.setWeight(75)
self.pushButton.setFont(font)
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "Login"))
self.pushButton.clicked.connect(self.buttonClicked)
def buttonClicked(self,Ui):
uic.loadUi('secondpage.ui',self)
如果 name == "main": 导入系统 应用程序 = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(主窗口) MainWindow.show() sys.exit(app.exec_())
【问题讨论】:
-
您不应尝试编辑 pyuic 文件,而应按照using Designer 中的说明使用它们。此外,即使使用正确的方式加载 UI,您也应该不在已经设置的小部件上使用
loadUi。 -
对不起,我不明白你的意思是代码有错误吗?
-
不,没有错误,有一个不好的做法。您正在使用的文件是由 pyuic 实用程序创建的,这些文件应该永远修改。阅读我之前评论中的链接,了解如何正确使用这些文件。
标签: python python-3.x pyqt5 qt5