abh*_*ela 1 python user-interface qt5 pyqt5
我知道这个问题已被问过多次,但我很难理解示例,所以我只有第一个屏幕,我想要的是,当我单击此屏幕时Go to page 2 button,它应该切换到second screen而不打开其他窗口。
步骤-1 单击Go to page 2 button
步骤-2 切换到2nd screen
步骤-3 切换回1st screen
这是我两个屏幕的代码,我不想加载UI文件
##############################File1.py
class Ui_PageFirst(object):
def setupUi(self, PageFirst):
PageFirst.setObjectName("PageFirst")
PageFirst.resize(123, 132)
self.centralwidget = QtWidgets.QWidget(PageFirst)
self.centralwidget.setObjectName("centralwidget")
self.FirstPageLable = QtWidgets.QLabel(self.centralwidget)
self.FirstPageLable.setGeometry(QtCore.QRect(0, 0, 121, 71))
self.FirstPageLable.setAlignment(QtCore.Qt.AlignCenter)
self.FirstPageLable.setObjectName("FirstPageLable")
self.btn1 = QtWidgets.QPushButton(self.centralwidget)
self.btn1.setGeometry(QtCore.QRect(20, 80, 75, 23))
self.btn1.setObjectName("btn1")
PageFirst.setCentralWidget(self.centralwidget)
self.retranslateUi(PageFirst)
QtCore.QMetaObject.connectSlotsByName(PageFirst)
def retranslateUi(self, PageFirst):
_translate = QtCore.QCoreApplication.translate
PageFirst.setWindowTitle(_translate("PageFirst", "MainWindow"))
self.FirstPageLable.setText(_translate("PageFirst", "This is page First."))
self.btn1.setText(_translate("PageFirst", "Go to page 2"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
PageFirst = QtWidgets.QMainWindow()
ui = Ui_PageFirst()
ui.setupUi(PageFirst)
PageFirst.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
##############################File2.py
class Ui_PageSecond(object):
def setupUi(self, PageSecond):
PageSecond.setObjectName("PageSecond")
PageSecond.resize(123, 132)
self.centralwidget = QtWidgets.QWidget(PageSecond)
self.centralwidget.setObjectName("centralwidget")
self.secondPageLable = QtWidgets.QLabel(self.centralwidget)
self.secondPageLable.setGeometry(QtCore.QRect(0, 0, 121, 71))
self.secondPageLable.setAlignment(QtCore.Qt.AlignCenter)
self.secondPageLable.setObjectName("secondPageLable")
self.btn2 = QtWidgets.QPushButton(self.centralwidget)
self.btn2.setGeometry(QtCore.QRect(20, 80, 75, 23))
self.btn2.setObjectName("btn2")
PageSecond.setCentralWidget(self.centralwidget)
self.retranslateUi(PageSecond)
QtCore.QMetaObject.connectSlotsByName(PageSecond)
def retranslateUi(self, PageSecond):
_translate = QtCore.QCoreApplication.translate
PageSecond.setWindowTitle(_translate("PageSecond", "MainWindow"))
self.secondPageLable.setText(_translate("PageSecond", "This is page Second."))
self.btn2.setText(_translate("PageSecond", "Go to page 1"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
PageSecond = QtWidgets.QMainWindow()
ui = Ui_PageSecond()
ui.setupUi(PageSecond)
PageSecond.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
小智 5
您必须使用QStackedWidget。
class Ui_PageFirst(QMainWindow): #Page1
def changeToPage2(self):
widget.setCurrentWidget(secondpage)
class Ui_PageSecond(QMainWindow): #Page2
def changeToPage1(self):
widget.setCurrentWidget(firstpage)
app = QApplication(sys.argv)
widget = QtWidgets.QStackedWidget()
#######
firstpage = Ui_PageFirst()
widget.addWidget(firstpage) # create an instance of the first page class and add it to stackedwidget
secondpage = Ui_PageSecond()
widget.addWidget(secondpage) # adding second page
widget.setCurrentWidget(firstpage) # setting the page that you want to load when application starts up. you can also use setCurrentIndex(int)
########
widget.show()
app.exec_()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4820 次 |
| 最近记录: |