diff --git a/statapp/main_window.py b/statapp/main_window.py index 00b71b5..620a9df 100644 --- a/statapp/main_window.py +++ b/statapp/main_window.py @@ -33,7 +33,7 @@ from statapp.about_window import AboutWindow from statapp.models.fileslc_model import FileSLCModel from statapp.polynoms.squared_polynom_window import SquaredPolynomWindow from statapp.ui.ui_main_window import Ui_MainWindow -from statapp.utils import buildMessageBox, addIcon, FloatDelegate +from statapp.utils import buildMessageBox, addIcon, FloatDelegate, onError from statapp.variance_analysis import VarianceAnalysisWindow from statapp.correlation_analysis import CorrelationAnalysisWindow from statapp.polynoms.transform_polynom_window import TransformPolynomWindow @@ -139,7 +139,7 @@ class MainWindow(QMainWindow): self.model.updateAllData(data) self.isDataChanged = False except Exception as error: - self.onError(error) + onError(error) @Slot() @@ -147,7 +147,7 @@ class MainWindow(QMainWindow): try: self.isDataChanged = not self.fileModel.saveFile(self.model.getData()) except Exception as error: - self.onError(error) + onError(error) @Slot() def on_closefileaction_triggered(self): @@ -155,7 +155,7 @@ class MainWindow(QMainWindow): self.fileModel.closeFile() self.isDataChanged = False except Exception as error: - self.onError(error) + onError(error) @Slot() def on_generateYaction_triggered(self): @@ -167,7 +167,7 @@ class MainWindow(QMainWindow): self.model.updateAllData(y.round(NUMBERS_PRECISION)) self.isDataChanged = True except Exception as error: - self.onError(error) + onError(error) @Slot() def on_generateXaction_triggered(self): @@ -182,7 +182,7 @@ class MainWindow(QMainWindow): self.model.updateAllData(data) self.isDataChanged = True except Exception as error: - self.onError(error) + onError(error) @Slot() def on_aboutmenuaction_triggered(self): @@ -195,7 +195,7 @@ class MainWindow(QMainWindow): dw = VarianceAnalysisWindow(self.model.getData()) dw.exec() except Exception as error: - self.onError(error) + onError(error) @Slot() def on_correlationAnalisisAction_triggered(self): @@ -203,7 +203,7 @@ class MainWindow(QMainWindow): dw = CorrelationAnalysisWindow(self.model.getData()) dw.exec() except Exception as error: - self.onError(error) + onError(error) @Slot() def on_linearPolynomAction_triggered(self): @@ -211,7 +211,7 @@ class MainWindow(QMainWindow): dw = LinearPolynomWindow(self.model.getData()) dw.exec() except Exception as error: - self.onError(error) + onError(error) @Slot() def on_squaredPolynomAction_triggered(self): @@ -219,7 +219,7 @@ class MainWindow(QMainWindow): dw = SquaredPolynomWindow(self.model.getData()) dw.exec() except Exception as error: - self.onError(error) + onError(error) @Slot() def on_transformPolynomAction_triggered(self): @@ -227,7 +227,7 @@ class MainWindow(QMainWindow): dw = TransformPolynomWindow(self.model.getData()) dw.exec() except Exception as error: - self.onError(error) + onError(error) def closeEvent(self, event): if self.isDataChanged: @@ -252,13 +252,3 @@ class MainWindow(QMainWindow): event.ignore() else: event.accept() - - def onError(self, errorName: Exception): - msgBox = buildMessageBox \ - ('Ошибка', - "Упс.. Произошла ошибка:\n" + str(errorName), - QMessageBox.Critical, - QMessageBox.Ok | QMessageBox.Cancel, - QMessageBox.Cancel) - - msgBox.exec_() diff --git a/statapp/polynoms/transform_polynom_window.py b/statapp/polynoms/transform_polynom_window.py index e72b0b0..16fa408 100644 --- a/statapp/polynoms/transform_polynom_window.py +++ b/statapp/polynoms/transform_polynom_window.py @@ -28,7 +28,7 @@ from statapp.models.prediction_table_model import PreditionTableModel from statapp.models.transform_polynom_model import TransformPolynomModel, TRANSFORMS from statapp.polynoms.polynom_window import MplCanvas from statapp.ui.ui_polynom_window import Ui_PolynomWindow -from statapp.utils import addIcon +from statapp.utils import addIcon, onError class TransformPolynomWindow(QDialog): @@ -41,8 +41,11 @@ class TransformPolynomWindow(QDialog): self.data = data result = linearPolynom(data) + try: + predictionResult = prediction(data, result) + except Exception as error: + onError(error) - predictionResult = prediction(data, result) self.predictionModel = PreditionTableModel(predictionResult) self.ui.predictionTableView.setModel(self.predictionModel) header = self.ui.predictionTableView.horizontalHeader() @@ -90,7 +93,10 @@ class TransformPolynomWindow(QDialog): tr = self.model.data(self.model.createIndex(j, 0), Qt.DisplayRole) data[i][j] = TRANSFORMS[tr](data[i][j]) - self.rebuildData(data) + try: + self.rebuildData(data) + except Exception as error: + onError(error) def rebuildData(self, data): result = linearPolynom(data) diff --git a/statapp/utils.py b/statapp/utils.py index f035c81..4e8b1b5 100644 --- a/statapp/utils.py +++ b/statapp/utils.py @@ -63,6 +63,15 @@ def buildMessageBox(title, text, icon, buttons, defaultButton): return msgBox +def onError(errorName: Exception): + msgBox = buildMessageBox \ + ('Ошибка', + "Упс.. Произошла ошибка:\n" + str(errorName), + QMessageBox.Critical, + QMessageBox.Ok, + QMessageBox.Ok) + + msgBox.exec_() class FloatDelegate(QStyledItemDelegate): def __init__(self, parent=None):