PyQt5俩界面间的来回跳转实现

3 篇文章 0 订阅

这里主要简单模拟点击按钮实现两个界面间的来回跳转,包含两个ui文件及对应的py文件,以及两个分别继承了界面类的py文件。下面是我的项目架构图:

 

 

 其中,main_window.py对应Window.py,rain_window.py对应rain_server.py。

main_window.py为主界面所在文件,rain_window.py为子界面所在文件。

main_window.py代码:

from PyQt5.QtCore import Qt
from page.rain_window import rain_ui
from ui.Windows import Ui_Form
from PyQt5.QtWidgets import QWidget


class main_ui(QWidget, Ui_Form):
    def __init__(self):
        super(main_ui, self).__init__()
        self.setupUi(self)
        self.rain_server = rain_ui()  # 实例化一个子界面的对象
        self.init_solt()  # 初始化槽函数

    def init_solt(self):
        self.Reverse_image_Btn.clicked.connect(self.cap_open)  # 连接打开子界面槽函数
        self.Home_Btn.clicked.connect(lambda: self.closeEvent(self))  # 连接关闭界面槽函数
        self.rain_server.pushButton.clicked.connect(self.cap_close)  # 连接子界面跳转回主界面函数

    def cap_open(self):
        """
        # 打开子界面函数
        :return:
        """
        self.hide()  # 将主页面隐藏
        self.rain_server.show()  # 显示子界面

    def cap_close(self):
        """
        # 关闭子界面打开主界面函数
        :return:
        """
        self.rain_server.close()  # 关闭子界面
        self.show()  # 显示主界面

rain_window.py代码:

from PyQt5.QtWidgets import QWidget
from ui.rain_server import Ui_Form


class rain_ui(QWidget, Ui_Form):

    def __init__(self):
        super(rain_ui, self).__init__()
        self.setupUi(self)
       
      

 

run.py代码:

import sys

from PyQt5.QtWidgets import QApplication
from page.main_window import main_ui
if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = main_ui()
    main_window.show()
    sys.exit(app.exec_())

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PyQt5实现界面跳转可以使用QStackedWidget控件。QStackedWidget是一个堆叠窗口控件,可以在其中放置多个子窗口,并且只显示其中一个子窗口。通过在按钮点击事件中切换当前显示的子窗口,就可以实现界面跳转。 下面是一个简单的示例代码,演示了如何在PyQt5实现界面跳转: ``` from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QStackedWidget class LoginWidget(QWidget): def __init__(self): super().__init__() self.login_button = QPushButton('Login') self.login_button.clicked.connect(self.on_login_clicked) layout = QVBoxLayout() layout.addWidget(self.login_button) self.setLayout(layout) def on_login_clicked(self): stacked_widget.setCurrentWidget(main_widget) class MainWidget(QWidget): def __init__(self): super().__init__() self.logout_button = QPushButton('Logout') self.logout_button.clicked.connect(self.on_logout_clicked) layout = QVBoxLayout() layout.addWidget(self.logout_button) self.setLayout(layout) def on_logout_clicked(self): stacked_widget.setCurrentWidget(login_widget) app = QApplication([]) stacked_widget = QStackedWidget() login_widget = LoginWidget() main_widget = MainWidget() stacked_widget.addWidget(login_widget) stacked_widget.addWidget(main_widget) stacked_widget.setCurrentWidget(login_widget) stacked_widget.show() app.exec_() ``` 在这个示例代码中,我们创建了两个子窗口类:LoginWidget和MainWidget。在LoginWidget中,我们创建了一个登录按钮,并将其点击事件与切换到MainWidget的操作连接起来。在MainWidget中,我们创建了一个注销按钮,并将其点击事件与切换到LoginWidget的操作连接起来。 最后,我们将这两个子窗口添加到QStackedWidget中,并将当前显示的子窗口设置为LoginWidget。这样,当程序启动时,会显示LoginWidget,点击登录按钮后会切换到MainWidget,点击注销按钮后会切换回LoginWidget。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值