From ce1ff065d167768aea9cffd0839288015e1f337f Mon Sep 17 00:00:00 2001 From: n3040 Date: Fri, 26 Aug 2022 17:30:42 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0=E6=B3=A8=E6=84=8F=E4=BA=8B?= =?UTF-8?q?=E9=A1=B9=E3=80=82=202.=E5=88=A4=E6=96=ADdwg=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8=E3=80=82=203.=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BA=86error=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PWFile.py | 12 +++++++----- error.py | 7 +++++++ gui.py | 32 +++++++++++++++++++++++++++----- 3 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 error.py diff --git a/PWFile.py b/PWFile.py index 0d01661..7915251 100644 --- a/PWFile.py +++ b/PWFile.py @@ -11,7 +11,7 @@ import numpy as np from time import sleep from attrs import define from typing import List - +import error @define class SEntry: @@ -633,23 +633,25 @@ class ControlFile: return os.path.join(self._dir_prefix, "ZT" + self._z_file_name + ".dwg") def draw(self): - continousePlate = ContinuousPlate( + if not os.path.exists(self._dwg_file_path): + raise error.DWGFileNotExistError(self._dwg_file_path) + continuous_plate = ContinuousPlate( self._dwg_file_path, self._s_file_path, self._from_tower_name, self._end_tower_name, ) - continousePlate.draw() + continuous_plate.draw() string_impact_plate = StringImpactPlate( self._dwg_file_path, self._s_file_path, self._from_tower_name, self._excel_continuous_path, self._excel_string_weight_path, - continousePlate.cad, + continuous_plate.cad, ) string_impact_plate.draw() - cad = continousePlate.cad + cad = continuous_plate.cad cad.doc.SaveAs(self.get_zt_dwg_file_path()) # # 画完后再打开 # cad = None diff --git a/error.py b/error.py new file mode 100644 index 0000000..737fcb6 --- /dev/null +++ b/error.py @@ -0,0 +1,7 @@ +import attrs + + +@attrs.define +class DWGFileNotExistError(Exception): + not_exist_dwg_file_path: str + pass diff --git a/gui.py b/gui.py index 2e9f072..5bbcec0 100644 --- a/gui.py +++ b/gui.py @@ -1,16 +1,18 @@ import os.path - +import error from ui.mainwindow import Ui_mainWindow from PyQt6 import QtWidgets -from PyQt6.QtWidgets import QMainWindow, QFileDialog, QMessageBox, QStatusBar -from PyQt6.QtCore import QSettings, QFileInfo +from PyQt6.QtWidgets import QMainWindow, QFileDialog, QMessageBox, QToolBar +from PyQt6.QtCore import QSettings, QFileInfo, Qt +from PyQt6.QtGui import QAction import datetime from PWFile import ControlFile class MainWindow(QMainWindow, Ui_mainWindow): - def _test_if_file_occupied(self, file_path): + @staticmethod + def _test_if_file_occupied(file_path): if not os.path.exists(file_path): return False try: @@ -38,7 +40,15 @@ class MainWindow(QMainWindow, Ui_mainWindow): self, "注意", f"{cf.get_zt_dwg_file_path()}被占用,请先关闭。" ) return - cf.draw() + try: + cf.draw() + except error.DWGFileNotExistError as dwg_not_exist_exception: + QMessageBox.warning( + self, + "错误", + f"DWG文件{dwg_not_exist_exception.not_exist_dwg_file_path}不存在。", + ) + continue self.statusBar().showMessage( f"{datetime.datetime.now()} Finished.", 8000 ) @@ -62,4 +72,16 @@ class MainWindow(QMainWindow, Ui_mainWindow): else: self.cBCloseCadDoc.setChecked(self._setting.value("close_cad", type=bool)) self.cBCloseCadDoc.clicked.connect(self._cBCloseCadDocClicked) + self._toolbar = QToolBar(self) + toolbar = self._toolbar + toolbar.setAllowedAreas(Qt.ToolBarArea.TopToolBarArea) + toolbar.setMovable(False) + about_action = QAction("注意事项", self) + about_action.triggered.connect( + lambda: QMessageBox.information( + self, "注意", "注意检查excel表格是否有电气科权限,wps是否安装了vba。" + ) + ) + toolbar.addAction(about_action) + self.addToolBar(toolbar) pass