python代码实现Qt页面(.ui)之间的跳转

一、问题

当我们使用Qt制作多个ui界面时,当点击某一主页面里的按钮时,怎样实现页面之间的跳转呢?

假设一个主界面的按钮跳转到Content_1.py界面。Ui_Caidan是Content_1.py里面的类。

二、问题解决

1. 首先在主界面导入想要跳转的.py文件库

2. 赋予按钮跳转功能

self.pushButton_2.clicked.connect(self.content)     #注:实现跳转,content是自己定义的函数名称;

3. 定义跳转函数代码

def content(self):
    ui_1.show()                                                     #注:ui_1是自己定义的变量

4. 在代码最后添加

if __name__ == '__main__':                                                                                  
    app = QApplication(sys.argv)
    MainWindow = QMainWindow()
    ui = Ui_MainWindow()
    ui_1 = Content_1.Ui_Caidan()                   
    #注:引入需要跳转的页面类名                                                                 
    ui.setupUi(MainWindow)                                    
    MainWindow.show()
    sys.exit(app.exec_())

5. 导入相关库

from PyQt5.QtWidgets import QApplication, QMainWindow     
import sys

6. 主页面类下增加固定代码

def __init__(self):    
    super(Ui_MainWindow, self).__init__()                                                      
    self.setupUi(self)                                                     
    self.retranslateUi(self)    
#跳转页面的类下也要增加代码:                                                
                  
class Ui_Caidan(QtWidgets.QMainWindow):  #注:括号里不是object
    def __init__(self):                                   
        super(Ui_Caidan, self).__init__()                       
    #注:Ui_Caidan是类名
        self.setupUi(self)
        self.retranslateUi(self)

总结

注:上述代码只能实现一次跳转,如果在跳转的页面点击返回按钮,则程序无响应,所以不能实现多次跳转,如果有知道的小伙伴,还望不吝赐教!

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于 PythonQt 实现 UI 界面跳转,可以通过以下步骤实现: 1. 创建多个 UI 界面文件,例如 `login.ui`、`dashboard.ui` 等,并使用 Qt Designer 工具进行设计。 2. 使用 `pyuic5` 命令将 UI 界面文件转换为 Python 代码文件。例如,对于 `login.ui` 文件,可以使用以下命令将其转换为 `login_ui.py` 文件: ``` pyuic5 login.ui -o login_ui.py ``` 3. 在 Python 代码中导入转换后的 UI 界面代码,并使用 `QMainWindow` 类或 `QWidget` 类创建窗口对象。 4. 在窗口对象中添加按钮或其他控件,并为其设置点击事件。例如,对于登录页面,可以添加一个登录按钮,并在其点击事件中执行登录验证操作。 5. 在点击事件中,可以使用 `hide()` 方法隐藏当前窗口,并使用 `show()` 方法显示下一个窗口。例如,对于登录页面中的登录按钮,可以在其点击事件中执行以下代码: ```python def login_clicked(self): # 执行登录验证操作 if self.validate_login(): # 验证通过,隐藏当前窗口,并显示下一个窗口 self.hide() dashboard_window = DashboardWindow() dashboard_window.show() ``` 以下是一个简单的示例代码: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QLineEdit, QVBoxLayout, QWidget class LoginWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('Login') self.username_label = QLabel('Username:') self.username_edit = QLineEdit() self.password_label = QLabel('Password:') self.password_edit = QLineEdit() self.password_edit.setEchoMode(QLineEdit.Password) self.login_button = QPushButton('Login') self.login_button.clicked.connect(self.login_clicked) layout = QVBoxLayout() layout.addWidget(self.username_label) layout.addWidget(self.username_edit) layout.addWidget(self.password_label) layout.addWidget(self.password_edit) layout.addWidget(self.login_button) widget = QWidget() widget.setLayout(layout) self.setCentralWidget(widget) def login_clicked(self): # 执行登录验证操作 if self.validate_login(): # 验证通过,隐藏当前窗口,并显示下一个窗口 self.hide() dashboard_window = DashboardWindow() dashboard_window.show() def validate_login(self): # 执行登录验证操作 return True class DashboardWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('Dashboard') self.label = QLabel('Welcome to the dashboard!') layout = QVBoxLayout() layout.addWidget(self.label) widget = QWidget() widget.setLayout(layout) self.setCentralWidget(widget) if __name__ == '__main__': app = QApplication([]) login_window = LoginWindow() login_window.show() app.exec_() ``` 在这个示例中,我们创建了两个窗口对象 `LoginWindow` 和 `DashboardWindow`,并在登录页面中添加了一个登录按钮。在登录按钮的点击事件中,我们执行登录验证操作,并在验证通过后,隐藏当前窗口,并显示下一个窗口。在目标页面中,我们添加了一个标签,并显示欢迎消息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值