p(syJ2haYg1@){V72zB
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
diff --git a/main.py b/main.py
index 793250a..20925da 100644
--- a/main.py
+++ b/main.py
@@ -1,27 +1,122 @@
+"""
+Model Team Tools - 主程序入口
+
+应用程序主窗口的初始化和配置模块
+使用 PySide6 构建的桌面应用程序框架
+
+主要功能:
+- 初始化 Qt 主窗口
+- 加载 Qt Material 样式表
+- 配置菜单栏和状态栏
+- 提供统一的日志记录接口
+"""
import sys
+import importlib
+import logging
+import core
+import traceback
-from PySide6.QtGui import *
-from PySide6.QtCore import *
-from PySide6.QtWidgets import *
+from pathlib import Path
+
+from typing import Optional
+from PySide6.QtGui import QIcon
+from PySide6.QtWidgets import QApplication, QMainWindow, QMenuBar, QStatusBar,QFileDialog
from qt_material import apply_stylesheet
-
from main_ui import Ui_MainWindow
+# 获取模块日志记录器
+logger = logging.getLogger(__name__)
+
+# 版本号常量
+MAJOR_VER: int = 0 # 主版本号
+MINOR_VER: int = 0 # 次版本号
+MICRO_VER: int = 1 # 修订版本号
+
+APP_NAME: str = "Model Team Tools"
+APP_VERSION: str = f"{MAJOR_VER}.{MINOR_VER}.{MICRO_VER}"
-class MainWindow(QMainWindow,Ui_MainWindow):
- def __init__(self):
+class MainWindow(QMainWindow, Ui_MainWindow):
+ """
+ 主窗口类
+
+ 继承自 QMainWindow(Qt 主窗口基类)和 Ui_MainWindow(Qt Designer 生成的 UI 界面)
+ 负责应用程序主窗口的初始化、样式配置和界面布局
+ """
+
+ def __init__(self) -> None:
super().__init__()
self.setupUi(self)
-
self.initUI()
- def initUI(self):
- self.setWindowIcon(QIcon("main.ico"))
- self.setWindowTitle("Model Team Tools")
+ def initUI(self) -> None:
+ """
+ 初始化用户界面组件
+
+ 执行以下初始化操作:
+ - 加载 Qt 样式表和自定义样式
+ - 设置窗口标题
+ - 配置菜单栏
+ - 配置状态栏
+ - 记录初始化日志
+
+ 注意:此方法在主窗口创建后调用
+ """
+ self.load_stylesheet()
+ self.setWindowTitle(APP_NAME)
+ self.setWindowIcon(QIcon('resources/main.ico'))
+ self.menubar: Optional[QMenuBar] = self.menuBar()
+ self.statusbar: QStatusBar = self.statusBar()
+ self.statusbar.showMessage(f"Version: {APP_VERSION}")
+
+ self.action_tools.triggered.connect(self.on_tools)
+
+ def load_stylesheet(self) -> None:
+ """
+ 加载 Qt 样式表和自定义样式文件
+
+ 使用 qt_material 库加载暗色主题,并应用自定义 QSS 样式表
+ 失败时记录错误日志,但不影响应用继续运行(降级策略)
+
+ 异常处理:
+ - FileNotFoundError: 样式文件不存在
+ - RuntimeError: 主题加载失败
+ - 其他异常: 记录警告但不中断应用
+ """
+ try:
+ apply_stylesheet(self, style=None,theme='dark_teal.xml', css_file='resources/my.qss')
+ except FileNotFoundError as e:
+ logger.warning(f"样式文件未找到,使用默认主题: {e}")
+ except RuntimeError as e:
+ logger.warning(f"主题加载失败,使用默认主题: {e}")
+ except Exception as e:
+ logger.warning(f"样式加载失败,使用默认主题: {e}")
+
+ def on_tools(self) -> None:
+ """打开工具箱窗口
+
+ 创建并显示工具箱窗口实例。包含完整的错误处理机制,
+ 确保任何异常都不会导致主程序崩溃。
+
+ 异常处理:
+ - 捕获所有异常并记录到日志
+ - 显示详细的错误堆栈信息
+ - 不影响主窗口的正常使用
+
+ 日志记录:
+ - 成功打开工具箱时记录 INFO 级别日志
+ - 打开失败时记录 ERROR 级别日志
+ """
+ try:
+ self.tools = core.ToolsWindow()
+ self.tools.show()
+ logger.info("工具箱窗口已打开")
+ except Exception as e:
+ logger.error(f"无法打开工具箱窗口: {e}")
+ logger.error(traceback.format_exc())
if __name__ == '__main__':
- app = QApplication([])
- main = MainWindow()
+ app = QApplication(sys.argv)
+ main: MainWindow = MainWindow()
main.show()
- sys.exit(app.exec())
+ sys.exit(app.exec())
\ No newline at end of file
diff --git a/main.ui b/main.ui
index 31ffdca..1158c13 100644
--- a/main.ui
+++ b/main.ui
@@ -6,8 +6,8 @@
0
0
- 800
- 600
+ 1200
+ 900
@@ -18,6 +18,28 @@
-
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 16777215
+ 250
+
+
+
+ QFrame::Shape::StyledPanel
+
+
+ QFrame::Shadow::Raised
+
+
+
-
+
+
+ toolBar
+
+
+ TopToolBarArea
+
+
+ false
+
+
+
- Config
+ 工具箱
+
+
+ QAction::MenuRole::NoRole
+
+
+ FrameLog
+ QFrame
+
+ 1
+
+
diff --git a/main_ui.py b/main_ui.py
index b6ce4cb..f5ed970 100644
--- a/main_ui.py
+++ b/main_ui.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'main.ui'
##
-## Created by: Qt User Interface Compiler version 6.8.2
+## Created by: Qt User Interface Compiler version 6.11.1
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -16,17 +16,20 @@ from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
QIcon, QImage, QKeySequence, QLinearGradient,
QPainter, QPalette, QPixmap, QRadialGradient,
QTransform)
-from PySide6.QtWidgets import (QApplication, QGridLayout, QMainWindow, QMenu,
- QMenuBar, QSizePolicy, QStackedWidget, QStatusBar,
- QWidget)
+from PySide6.QtWidgets import (QApplication, QFrame, QGridLayout, QMainWindow,
+ QMenu, QMenuBar, QSizePolicy, QStackedWidget,
+ QStatusBar, QToolBar, QWidget)
+
+from core import FrameLog
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
if not MainWindow.objectName():
MainWindow.setObjectName(u"MainWindow")
- MainWindow.resize(800, 600)
- self.actionconfigs = QAction(MainWindow)
- self.actionconfigs.setObjectName(u"actionconfigs")
+ MainWindow.resize(1200, 900)
+ self.action_tools = QAction(MainWindow)
+ self.action_tools.setObjectName(u"action_tools")
+ self.action_tools.setMenuRole(QAction.MenuRole.NoRole)
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget")
self.gridLayout = QGridLayout(self.centralwidget)
@@ -36,19 +39,35 @@ class Ui_MainWindow(object):
self.gridLayout.addWidget(self.stackedWidget, 0, 0, 1, 1)
+ self.frame = FrameLog(self.centralwidget)
+ self.frame.setObjectName(u"frame")
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
+ self.frame.setSizePolicy(sizePolicy)
+ self.frame.setMaximumSize(QSize(16777215, 250))
+ self.frame.setFrameShape(QFrame.Shape.StyledPanel)
+ self.frame.setFrameShadow(QFrame.Shadow.Raised)
+
+ self.gridLayout.addWidget(self.frame, 1, 0, 1, 1)
+
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QMenuBar(MainWindow)
self.menubar.setObjectName(u"menubar")
- self.menubar.setGeometry(QRect(0, 0, 800, 21))
+ self.menubar.setGeometry(QRect(0, 0, 1200, 21))
self.menu = QMenu(self.menubar)
self.menu.setObjectName(u"menu")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QStatusBar(MainWindow)
self.statusbar.setObjectName(u"statusbar")
MainWindow.setStatusBar(self.statusbar)
+ self.toolBar = QToolBar(MainWindow)
+ self.toolBar.setObjectName(u"toolBar")
+ MainWindow.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.toolBar)
self.menubar.addAction(self.menu.menuAction())
- self.menu.addAction(self.actionconfigs)
+ self.menu.addAction(self.action_tools)
self.retranslateUi(MainWindow)
@@ -57,7 +76,8 @@ class Ui_MainWindow(object):
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
- self.actionconfigs.setText(QCoreApplication.translate("MainWindow", u"Config", None))
- self.menu.setTitle(QCoreApplication.translate("MainWindow", u"File", None))
+ self.action_tools.setText(QCoreApplication.translate("MainWindow", u"\u5de5\u5177\u7bb1", None))
+ self.menu.setTitle(QCoreApplication.translate("MainWindow", u"\u6587\u4ef6", None))
+ self.toolBar.setWindowTitle(QCoreApplication.translate("MainWindow", u"toolBar", None))
# retranslateUi
diff --git a/nuitka-crash-report.xml b/nuitka-crash-report.xml
new file mode 100644
index 0000000..6d273c3
--- /dev/null
+++ b/nuitka-crash-report.xml
@@ -0,0 +1,7481 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..8842134
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,4 @@
+PySide6>=6.0.0
+Nuitka==2.6.6
+qt_material>=0.1.1
+logging>=0.1.0
\ No newline at end of file
diff --git a/resources/main.ico b/resources/main.ico
new file mode 100644
index 0000000000000000000000000000000000000000..29d34822d371a02deabe76f6bb371076494fc3d5
GIT binary patch
literal 41190
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