26216064e0
将原来的 main.py/step_model.py 拆分为 step_editor 包,补充测量、同域高亮、模型修复、历史导出、槽宽/凸台/边长等 MVP 编辑能力,并更新 README 和忽略规则。
52 lines
1.1 KiB
Python
52 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
from PySide6.QtCore import QObject, Signal, Slot
|
|
|
|
|
|
class EditWorker(QObject):
|
|
finished = Signal(object)
|
|
failed = Signal(str)
|
|
|
|
def __init__(self, action):
|
|
super().__init__()
|
|
self.action = action
|
|
|
|
@Slot()
|
|
def run(self) -> None:
|
|
try:
|
|
self.finished.emit(self.action())
|
|
except Exception as exc:
|
|
self.failed.emit(str(exc))
|
|
|
|
|
|
class ScanWorker(QObject):
|
|
finished = Signal(object)
|
|
failed = Signal(str)
|
|
|
|
def __init__(self, action):
|
|
super().__init__()
|
|
self.action = action
|
|
|
|
@Slot()
|
|
def run(self) -> None:
|
|
try:
|
|
self.finished.emit(self.action())
|
|
except Exception as exc:
|
|
self.failed.emit(str(exc))
|
|
|
|
|
|
class LoadWorker(QObject):
|
|
finished = Signal(object)
|
|
failed = Signal(str)
|
|
|
|
def __init__(self, action):
|
|
super().__init__()
|
|
self.action = action
|
|
|
|
@Slot()
|
|
def run(self) -> None:
|
|
try:
|
|
self.finished.emit(self.action())
|
|
except Exception as exc:
|
|
self.failed.emit(str(exc))
|