优化了部分代码结构;

修改了复选框的样式
This commit is contained in:
Yorusora
2025-06-11 11:09:48 +08:00
parent 3c60f769ca
commit 8010d7c250
7 changed files with 53 additions and 66 deletions

View File

@ -3,7 +3,6 @@ from pathlib import Path
from traceback import format_exc
import matplotlib.pyplot as plt
from PySide6.QtCore import QEvent
from PySide6.QtWidgets import QMessageBox, QMainWindow, QApplication
from matplotlib.backends.backend_qt import NavigationToolbar2QT
from matplotlib.backends.backend_qtagg import FigureCanvasQTAgg as FigureCanvas
@ -275,8 +274,6 @@ class MainWindow_approximately_align(QMainWindow):
PublicFunc.__resetAllButton__(self, ButtonState)
# self.ui.groupBox_align_position.setEnabled(False)
self.ui.pushButton_input.clicked.connect(self.__slot_btn_input__)
self.ui.pushButton_input_setting.clicked.connect(self.setting.show)
self.ui.pushButton_Standardize.clicked.connect(self.__slot_btn_Standardize__)

View File

@ -9,7 +9,7 @@ from PySide6.QtWidgets import QMessageBox, QMainWindow, QApplication, QTableWidg
from matplotlib import gridspec, patches
from matplotlib.backends.backend_qt import NavigationToolbar2QT
from matplotlib.backends.backend_qtagg import FigureCanvasQTAgg
from numpy import array, sum as np_sum, nonzero
from numpy import array
from numpy.fft import fft, fftfreq
from overrides import overrides
from pandas import read_csv, DataFrame, concat

View File

@ -365,6 +365,21 @@ class MainWindow(QMainWindow, Ui_Signal_Label):
path.mkdir(parents=True, exist_ok=True)
def set_dark_mode_status(self):
module_list = [
self,
self.approximately_align,
self.preprocess,
self.detect_Jpeak,
self.detect_Rpeak,
self.label_check,
self.precisely_align,
self.cut_PSG,
self.artifact_label,
self.bcg_quality_label,
self.resp_quality_label,
self.SA_label
]
try:
if self.ui.checkBox_darkmode.isChecked():
QApplication.styleHints().setColorScheme(Qt.ColorScheme.Dark)
@ -374,65 +389,12 @@ class MainWindow(QMainWindow, Ui_Signal_Label):
PublicFunc.msgbox_output(self, Constants.MAINWINDOW_DARKMODE_FAILURE + "" + format_exc(), Constants.MSGBOX_TYPE_ERROR)
return
try:
MainWindow.update_widget_style(self)
except RuntimeError:
pass
try:
if self.approximately_align is not None:
MainWindow.update_widget_style(self.approximately_align)
except RuntimeError:
pass
try:
if self.preprocess is not None:
MainWindow.update_widget_style(self.preprocess)
except RuntimeError:
pass
try:
if self.detect_Jpeak is not None:
MainWindow.update_widget_style(self.detect_Jpeak)
except RuntimeError:
pass
try:
if self.detect_Rpeak is not None:
MainWindow.update_widget_style(self.detect_Rpeak)
except RuntimeError:
pass
try:
if self.label_check is not None:
MainWindow.update_widget_style(self.label_check)
except RuntimeError:
pass
try:
if self.precisely_align is not None:
MainWindow.update_widget_style(self.precisely_align)
except RuntimeError:
pass
try:
if self.cut_PSG is not None:
MainWindow.update_widget_style(self.cut_PSG)
except RuntimeError:
pass
try:
if self.artifact_label is not None:
MainWindow.update_widget_style(self.artifact_label)
except RuntimeError:
pass
try:
if self.bcg_quality_label is not None:
MainWindow.update_widget_style(self.bcg_quality_label)
except RuntimeError:
pass
try:
if self.resp_quality_label is not None:
MainWindow.update_widget_style(self.resp_quality_label)
except RuntimeError:
pass
try:
if self.SA_label is not None:
MainWindow.update_widget_style(self.SA_label)
except RuntimeError:
pass
for module in module_list:
try:
if module is not None:
MainWindow.update_widget_style(module)
except RuntimeError:
pass
@staticmethod
def update_widget_style(mainWindow):

View File

@ -94,6 +94,30 @@ class Constants:
background-color: rgba(255, 0, 0, 128); /* 鼠标悬停时的背景颜色 */
}"""
CHECKBOX_STYLE_NORMAL: str = '''
QCheckBox {
border: 2px solid rgb(128, 128, 128);
border-radius: 11px;
}
QCheckBox::indicator{
width: 20px;
height: 20px;
border-radius: 10px;
}
QCheckBox::indicator:checked {
background-color: rgba(0, 255, 0, 192);
image: url(./image/correct.svg);
}
QCheckBox::indicator:unchecked {
background-color: rgba(255, 0, 0, 128);
}
QCheckBox::indicator:disabled {
background-color: rgba(119, 136, 153, 128);
}'''
FAILURE_REASON: dict = {
"Path_Not_Exist": "(路径不存在)",
"File_Not_Exist": "(数据文件不存在)",

View File

@ -2,7 +2,7 @@ from datetime import datetime
from logging import error, info
from pathlib import Path
from PySide6.QtWidgets import QMessageBox, QWidget, QPushButton, QProgressBar, QApplication, QRadioButton
from PySide6.QtWidgets import QMessageBox, QWidget, QPushButton, QProgressBar, QApplication, QRadioButton, QCheckBox
from func.utils.Constants import Constants
from func.utils.CustomException import TipsTypeValueNotExistError, MsgBoxTypeValueNotExistError
@ -152,6 +152,8 @@ class PublicFunc:
if isinstance(widget, QPushButton):
if widget.objectName() in buttonState["Default"].keys():
widget.setStyleSheet(Constants.LABELBTN_STYLE_NORMAL)
if isinstance(widget, QCheckBox):
widget.setStyleSheet(Constants.CHECKBOX_STYLE_NORMAL)
@staticmethod
def add_progressbar(mainWindow):

2
image/correct.svg Normal file
View File

@ -0,0 +1,2 @@
<?xml version="1.0" ?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" width="800px" height="800px" viewBox="0 0 200 200" data-name="Layer 1" id="Layer_1" xmlns="http://www.w3.org/2000/svg"><title/><path d="M100,15a85,85,0,1,0,85,85A84.93,84.93,0,0,0,100,15Zm0,150a65,65,0,1,1,65-65A64.87,64.87,0,0,1,100,165Zm25-91.5-29,35L76,94c-4.5-3.5-10.5-2.5-14,2s-2.5,10.5,2,14c6,4.5,12.5,9,18.5,13.5,4.5,3,8.5,7.5,14,8,1.5,0,3.5,0,5-1l3-3,22.5-27c4-5,8-9.5,12-14.5,3-4,4-9,.5-13L138,71.5c-3.5-2.5-9.5-2-13,2Z"/></svg>

After

Width:  |  Height:  |  Size: 560 B

4
run.py
View File

@ -1,3 +1,4 @@
from importlib.util import find_spec
from logging import getLogger, NOTSET, FileHandler, Formatter, StreamHandler, info
from os import environ
from pathlib import Path
@ -6,7 +7,6 @@ from time import strftime, localtime, time
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication
from func.Module_mainwindow import MainWindow
import importlib.util
if __name__ == '__main__':
# 设置日志
@ -28,7 +28,7 @@ if __name__ == '__main__':
info("程序启动")
# 解决 Could not find the Qt platform plugin "windows"
spec = importlib.util.find_spec("PySide6")
spec = find_spec("PySide6")
if spec and spec.origin:
dirname = Path(spec.origin).parent
plugin_path = dirname / 'plugins' / 'platforms'