目标
在第一个窗口中传入文件地址,后台从地址中读取出文件数据,在第二个窗口中将数据绘图展示出来。大致实现如图:
设计界面
首先用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
完成
这样运行第一个文件就可以得到目标
中的那种效果了。