PyQt5界面跳转处理案例

本文介绍了一个使用PyQt5进行界面设计的案例,强调了界面层与业务层分离的设计思路,通过Qt Designer创建窗体并用PyUIC转换。文章详细阐述了如何初始化业务层类,设置信号与槽,以及定义槽函数,以实现不同窗口间的跳转。案例包含四个文件:first_window.py(第一个窗体界面层),first_window_actions.py(第一个窗体业务层),another_window.py(另一个窗体界面层)和another_window_actions.py(另一个窗体业务层)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、思路:

1.为了后期对界面的优化处理,我们采用界面层和业务层分离的方法

2.使用PyQt5 的 Qt Designer 可视化编辑界面(特别注意,创建窗体时使用QMainWindow) ,再通  过PyUIC转换为界面类

3.定义一个业务层类去继承两个类,分别是设计的界面基类和QMainWindow类(需要引入的包:

 from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget,   QFileDialog,QMessageBox)

4.初始化业务层类

5.设置信号与槽

6.定义槽

二、结构说明:

一共有四个文件:

  • first_window.py                         第一个窗体界面层
  • first_window_actions.py            第一个窗体的业务层
  • another_window.py                   另一个窗体界面层
  • another_window_actions.py      另一个窗体界业务层

三、代码:

(1)first_window.py 文件---界面层

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'demo.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(558, 483)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObje
下面是一个简单的PyQt5实现登录和主界面跳转案例代码: ``` python import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout class Login(QWidget): def __init__(self): super().__init__() self.setWindowTitle('登录') self.resize(300, 150) self.username = QLineEdit(self) self.password = QLineEdit(self) self.password.setEchoMode(QLineEdit.Password) self.login_btn = QPushButton('登录', self) layout = QVBoxLayout(self) layout.addWidget(QLabel('用户名:', self)) layout.addWidget(self.username) layout.addWidget(QLabel('密码:', self)) layout.addWidget(self.password) layout.addWidget(self.login_btn) self.login_btn.clicked.connect(self.check_login) def check_login(self): # 这里可以自定义登录逻辑,比如验证用户名和密码是否正确 if self.username.text() == 'admin' and self.password.text() == '123456': self.hide() main_window.show() class MainWindow(QWidget): def __init__(self): super().__init__() self.setWindowTitle('主界面') self.resize(300, 150) layout = QVBoxLayout(self) layout.addWidget(QLabel('欢迎来到主界面!', self)) if __name__ == '__main__': app = QApplication(sys.argv) login_window = Login() main_window = MainWindow() login_window.show() sys.exit(app.exec_()) ``` 这个程序中,我们定义了两个窗口:`Login`和`MainWindow`。`Login`窗口用于登录,`MainWindow`窗口是登录成功后跳转的主界面。在`Login`窗口中,我们定义了两个文本框和一个按钮,用户输入用户名和密码,点击登录按钮后会调用`check_login`函数进行登录验证。在`MainWindow`窗口中,我们只是简单的显示了一句欢迎语。 在程序的主函数中,我们先创建了`Login`和`MainWindow`两个窗口,并把`MainWindow`窗口隐藏起来。然后显示`Login`窗口,等待用户进行登录操作。如果登录成功,我们就把`Login`窗口隐藏起来,显示`MainWindow`窗口。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟道行僧

鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值