Qt Designer设计的界面如何实现两个界面的相互跳转

设置第一级界面逻辑

class FirstWindowLogic(QMainWindow, uiFirst):
    def __init__(self):
        super(FirstWindowLogic, self).__init__()
        self.setupUi(self)
        self.run()

    '''设置按钮逻辑操作'''
    def run(self):
        self.Second_pushButton.clicked.connect(self.toSecondWindow)  # 函数名后面不加(),否则会立即执行函数,而不是点击按钮执行函数

    '''实现各个按钮的逻辑'''
    # 跳转至第二级界面
    def toSecondWindow(self):
        self.ui_SecondWindow = SecondWindowLogic()
        self.ui_SecondWindow.show()  # 打开第二级界面
        '''接受来自第二级界面发射的返回上一级界面信号'''
        print("接受信号成功")
        self.ui_SecondWindow.returnFirstWindowSignal.connect(self.reshow)
        
        self.close() 
        
    def reshow(self):  # 重新打开该界面
        self.show()

设置第二级界面逻辑

class SecondWindowLogic(QMainWindow, uiSecond):

    returnFirstWindowSignal = QtCore.pyqtSignal()  # 跳转信号

    def __init__(self):
        super(SecondWindowLogic, self).__init__()
        self.setupUi(self)
        self.run()

    '''设置按钮逻辑操作'''
    def run(self):
        self.return_pushButton.clicked.connect(self.returnFirstWindow)  # 返回上一级菜单的按钮
	# 向上一级界面发射跳转信号
    def returnFirstWindow(self):
        self.close()  # 关闭自己的界面
        self.returnFirstWindowSignal.emit()  # 发射跳转信号

如此就可以实现在两个界面之间反复跳转
参考链接

Qt Designer实现界面切换,可以通过以下步骤: 1. 在Qt Designer设计两个或多个需要切换的界面,每个界面作为一个QWidget。 2. 在第一个界面中添加一个QPushButton,并在其clicked信号上连接一个槽函数。 3. 在槽函数中使用QStackedWidget控件来实现界面切换。QStackedWidget控件可以在运行时动态地添加和删除QWidget,而且只会显示当前活动的QWidget。 4. 在槽函数中,使用setCurrentIndex()函数设置QStackedWidget控件当前显示的QWidget索引号,以实现界面切换。 以下是一个示例代码,其中有两个QWidget界面,分别命名为page1和page2,通过一个QPushButton实现从page1切换到page2: ```python from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QMainWindow, QApplication, QStackedWidget from ui_page1 import Ui_Page1 from ui_page2 import Ui_Page2 class MainWindow(QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) # create QStackedWidget and add the pages self.stackedWidget = QStackedWidget() self.page1 = Ui_Page1() self.page2 = Ui_Page2() self.stackedWidget.addWidget(self.page1) self.stackedWidget.addWidget(self.page2) # set the central widget to the stacked widget self.setCentralWidget(self.stackedWidget) # connect button clicked signal to slot function self.page1.pushButton.clicked.connect(self.switchPage) @pyqtSlot() def switchPage(self): # switch to page2 self.stackedWidget.setCurrentIndex(1) ``` 注意,在此示例中,使用了两个单独的UI文件,分别为ui_page1.py和ui_page2.py,需要在代码中导入这些文件并将它们添加到QStackedWidget中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值