Initial Commit.
This commit is contained in:
108
func/Module_mainwindow.py
Normal file
108
func/Module_mainwindow.py
Normal file
@ -0,0 +1,108 @@
|
||||
from pathlib import Path
|
||||
|
||||
from PySide6.QtWidgets import QMainWindow, QMessageBox, QFileDialog
|
||||
from matplotlib import use
|
||||
from yaml import dump, load, FullLoader
|
||||
|
||||
from func.utils.PublicFunc import PublicFunc
|
||||
from ui.MainWindow.MainWindow_menu import Ui_Signal_Label
|
||||
|
||||
from func.Module_preprocess import MainWindow_preprocess
|
||||
from func.Module_detect_Jpeak import MainWindow_detect_Jpeak
|
||||
|
||||
from func.utils.Constants import Constants, ConfigParams
|
||||
|
||||
|
||||
use("QtAgg")
|
||||
|
||||
|
||||
Config = {
|
||||
|
||||
}
|
||||
|
||||
|
||||
class MainWindow(QMainWindow, Ui_Signal_Label):
|
||||
|
||||
def __init__(self):
|
||||
|
||||
super(MainWindow, self).__init__()
|
||||
self.ui = Ui_Signal_Label()
|
||||
self.ui.setupUi(self)
|
||||
|
||||
self.__read_config__()
|
||||
self.ui.plainTextEdit_root_path.setPlainText(Config["Path"]["Root"])
|
||||
self.seek_sampID(Path(Config["Path"]["Root"]) / Path(ConfigParams.PUBLIC_PATH_ORGBCG_TEXT))
|
||||
|
||||
self.preprocess = None
|
||||
|
||||
# 消息弹窗初始化
|
||||
self.msgBox = QMessageBox()
|
||||
self.msgBox.setWindowTitle(Constants.MAINWINDOW_MSGBOX_TITLE)
|
||||
|
||||
# 绑定槽函数
|
||||
self.ui.pushButton_open.clicked.connect(self.__slot_btn_open__)
|
||||
self.ui.pushButton_preprocess_BCG.clicked.connect(self.__slot_btn_preprocess__)
|
||||
self.ui.pushButton_preprocess_ECG.clicked.connect(self.__slot_btn_preprocess__)
|
||||
self.ui.pushButton_detect_Jpeak.clicked.connect(self.__slot_btn_detect_Jpeak__)
|
||||
|
||||
@staticmethod
|
||||
def __read_config__():
|
||||
|
||||
if not Path(ConfigParams.PUBLIC_CONFIG_FILE_PATH).exists():
|
||||
with open(ConfigParams.PUBLIC_CONFIG_FILE_PATH, "w") as f:
|
||||
dump(ConfigParams.PUBLIC_CONFIG_NEW_CONTENT, f)
|
||||
|
||||
with open(ConfigParams.PUBLIC_CONFIG_FILE_PATH, "r") as f:
|
||||
file_config = load(f.read(), Loader=FullLoader)
|
||||
Config.update(file_config)
|
||||
|
||||
@staticmethod
|
||||
def __write_config__():
|
||||
|
||||
with open(Path(ConfigParams.PUBLIC_CONFIG_FILE_PATH), "w") as f:
|
||||
dump(Config, f)
|
||||
|
||||
def __slot_btn_open__(self):
|
||||
|
||||
file_dialog = QFileDialog()
|
||||
file_dialog.setFileMode(QFileDialog.Directory)
|
||||
file_dialog.setOption(QFileDialog.ShowDirsOnly, True)
|
||||
if file_dialog.exec_() == QFileDialog.Accepted:
|
||||
self.seek_sampID(Path(file_dialog.selectedFiles()[0]) / ConfigParams.PUBLIC_PATH_ORGBCG_TEXT)
|
||||
self.ui.plainTextEdit_root_path.setPlainText(file_dialog.selectedFiles()[0])
|
||||
|
||||
# 修改配置
|
||||
Config["Path"]["Root"] = str(file_dialog.selectedFiles()[0])
|
||||
self.__write_config__()
|
||||
else:
|
||||
PublicFunc.msgbox_output(self, Constants.OPERATION_CANCELED, Constants.MSGBOX_TYPE_INFO)
|
||||
|
||||
def __slot_btn_preprocess__(self):
|
||||
|
||||
self.preprocess = MainWindow_preprocess()
|
||||
|
||||
sender = self.sender()
|
||||
root_path = self.ui.plainTextEdit_root_path.toPlainText()
|
||||
sampID = int(self.ui.comboBox_sampID.currentText())
|
||||
if sender == self.ui.pushButton_preprocess_BCG:
|
||||
mode = "BCG"
|
||||
self.preprocess.show(mode, root_path, sampID)
|
||||
elif sender == self.ui.pushButton_preprocess_ECG:
|
||||
mode = "ECG"
|
||||
self.preprocess.show(mode, root_path, sampID)
|
||||
|
||||
def __slot_btn_detect_Jpeak__(self):
|
||||
|
||||
self.detect_Jpeak = MainWindow_detect_Jpeak()
|
||||
root_path = self.ui.plainTextEdit_root_path.toPlainText()
|
||||
sampID = int(self.ui.comboBox_sampID.currentText())
|
||||
self.detect_Jpeak.show(root_path, sampID)
|
||||
|
||||
def seek_sampID(self, path):
|
||||
|
||||
if not Path(path).exists():
|
||||
PublicFunc.msgbox_output(self, Constants.MAINWINDOW_ROOT_PATH_NOT_EXIST, Constants.MSGBOX_TYPE_ERROR)
|
||||
return
|
||||
|
||||
sub_folders = [item.name for item in Path(path).iterdir() if item.is_dir()]
|
||||
self.ui.comboBox_sampID.addItems(sub_folders)
|
||||
Reference in New Issue
Block a user