27 lines
921 B
Python
27 lines
921 B
Python
# kompas_worker.py
|
||
from PyQt6.QtCore import QObject, pyqtSignal
|
||
import pythoncom
|
||
from parser.main import KompasDocumentParser
|
||
|
||
|
||
class KompasWorker(QObject):
|
||
result_ready = pyqtSignal(object)
|
||
error_occurred = pyqtSignal(str)
|
||
|
||
def run_kompas(self):
|
||
try:
|
||
# Инициализируем COM правильно
|
||
pythoncom.CoInitializeEx(pythoncom.COINIT_APARTMENTTHREADED)
|
||
|
||
# Выполняем работу с КОМПАС
|
||
parser = KompasDocumentParser()
|
||
documents = parser.get_open_documents()
|
||
|
||
# Отправляем результат обратно
|
||
self.result_ready.emit(documents)
|
||
except Exception as e:
|
||
import traceback
|
||
error_msg = f"[Ошибка] {e}\n{traceback.format_exc()}"
|
||
self.error_occurred.emit(error_msg)
|
||
finally:
|
||
pythoncom.CoUninitialize() |