PyQt5由一个窗口打开另一个窗口并传参

文章讲述了如何利用Qtdesigner设计GUI界面,创建两个窗口,一个用于加载数据文件,另一个用于展示数据绘图。在load_data.py中,实现了从1号窗口接收文件地址并传递给2号窗口,2号窗口的plot_eeg.py则负责处理数据并绘图。整个过程通过PyQt5库进行窗口管理和交互。
摘要由CSDN通过智能技术生成

目标

在第一个窗口中传入文件地址,后台从地址中读取出文件数据,在第二个窗口中将数据绘图展示出来。大致实现如图:
在这里插入图片描述

设计界面

首先用Qt designer 设计好两个页面,分别用pyuic5转成python文件。如图
在这里插入图片描述
有了两个ui转成的.py文件后,可以开始逻辑代码。其中

加入逻辑

1号窗口启动的文件load_data.py
from gui.load_data.load_data import Ui_Load_data
from PyQt5.QtWidgets import QMainWindow, QApplication
from plot.plot_gui import plot_gui

# 这里的Ui_Load_data是用Qt designer设计好后转成.py文件中的那个类
class load_gui(QMainWindow, Ui_Load_data):
	"""
	初始化1号窗口---Ui_Load_data
	"""
    def __init__(self, parent=None):
        super(load_gui, self).__init__(parent)
        self.setupUi(self)
        
	def jump(self):
		"""
		跳转到2号窗口---sleep
		"""
		# 传参,这里的win_plot来自下面if __name__ == '__main__'中的win_plot=plot_gui
		win_plot.get_params(a=a, b=b)
		# 启动2号窗口
     	win_plot.show()

# 启动1号窗口
if __name__ == '__main__':
    app = QApplication(sys.argv)
    myWin = load_gui()
    # 在这里初始化2号窗口
    win_plot = plot_gui()
    myWin.show()
    sys.exit(app.exec_())
2号窗口待处理数据的文件plot_eeg.py
from PyQt5.QtWidgets import QMainWindow, QApplication

from gui.plot.sleep import Ui_sleep

# 这里的Ui_sleep来自qt designer设计好的ui转成.py文件中的那个类
class plot_gui(QMainWindow, Ui_sleep):
    def __init__(self, parent=None):
        super(plot_gui, self).__init__(parent)
        self.setupUi(self)

        self.a = None
        self.b = None

    def get_params(self, a, b):
    	"""
    	独立写一个方法用来传参
    	"""
        self.a = a
        self.b = b
完成

这样运行第一个文件就可以得到目标中的那种效果了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值