fix: Добавлена обработка ошибок

This commit is contained in:
Почти Демон 2024-01-29 11:05:49 +03:00
parent 5434016f73
commit b00f7e2f9d
3 changed files with 29 additions and 24 deletions

View File

@ -33,7 +33,7 @@ from statapp.about_window import AboutWindow
from statapp.models.fileslc_model import FileSLCModel from statapp.models.fileslc_model import FileSLCModel
from statapp.polynoms.squared_polynom_window import SquaredPolynomWindow from statapp.polynoms.squared_polynom_window import SquaredPolynomWindow
from statapp.ui.ui_main_window import Ui_MainWindow 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.variance_analysis import VarianceAnalysisWindow
from statapp.correlation_analysis import CorrelationAnalysisWindow from statapp.correlation_analysis import CorrelationAnalysisWindow
from statapp.polynoms.transform_polynom_window import TransformPolynomWindow from statapp.polynoms.transform_polynom_window import TransformPolynomWindow
@ -139,7 +139,7 @@ class MainWindow(QMainWindow):
self.model.updateAllData(data) self.model.updateAllData(data)
self.isDataChanged = False self.isDataChanged = False
except Exception as error: except Exception as error:
self.onError(error) onError(error)
@Slot() @Slot()
@ -147,7 +147,7 @@ class MainWindow(QMainWindow):
try: try:
self.isDataChanged = not self.fileModel.saveFile(self.model.getData()) self.isDataChanged = not self.fileModel.saveFile(self.model.getData())
except Exception as error: except Exception as error:
self.onError(error) onError(error)
@Slot() @Slot()
def on_closefileaction_triggered(self): def on_closefileaction_triggered(self):
@ -155,7 +155,7 @@ class MainWindow(QMainWindow):
self.fileModel.closeFile() self.fileModel.closeFile()
self.isDataChanged = False self.isDataChanged = False
except Exception as error: except Exception as error:
self.onError(error) onError(error)
@Slot() @Slot()
def on_generateYaction_triggered(self): def on_generateYaction_triggered(self):
@ -167,7 +167,7 @@ class MainWindow(QMainWindow):
self.model.updateAllData(y.round(NUMBERS_PRECISION)) self.model.updateAllData(y.round(NUMBERS_PRECISION))
self.isDataChanged = True self.isDataChanged = True
except Exception as error: except Exception as error:
self.onError(error) onError(error)
@Slot() @Slot()
def on_generateXaction_triggered(self): def on_generateXaction_triggered(self):
@ -182,7 +182,7 @@ class MainWindow(QMainWindow):
self.model.updateAllData(data) self.model.updateAllData(data)
self.isDataChanged = True self.isDataChanged = True
except Exception as error: except Exception as error:
self.onError(error) onError(error)
@Slot() @Slot()
def on_aboutmenuaction_triggered(self): def on_aboutmenuaction_triggered(self):
@ -195,7 +195,7 @@ class MainWindow(QMainWindow):
dw = VarianceAnalysisWindow(self.model.getData()) dw = VarianceAnalysisWindow(self.model.getData())
dw.exec() dw.exec()
except Exception as error: except Exception as error:
self.onError(error) onError(error)
@Slot() @Slot()
def on_correlationAnalisisAction_triggered(self): def on_correlationAnalisisAction_triggered(self):
@ -203,7 +203,7 @@ class MainWindow(QMainWindow):
dw = CorrelationAnalysisWindow(self.model.getData()) dw = CorrelationAnalysisWindow(self.model.getData())
dw.exec() dw.exec()
except Exception as error: except Exception as error:
self.onError(error) onError(error)
@Slot() @Slot()
def on_linearPolynomAction_triggered(self): def on_linearPolynomAction_triggered(self):
@ -211,7 +211,7 @@ class MainWindow(QMainWindow):
dw = LinearPolynomWindow(self.model.getData()) dw = LinearPolynomWindow(self.model.getData())
dw.exec() dw.exec()
except Exception as error: except Exception as error:
self.onError(error) onError(error)
@Slot() @Slot()
def on_squaredPolynomAction_triggered(self): def on_squaredPolynomAction_triggered(self):
@ -219,7 +219,7 @@ class MainWindow(QMainWindow):
dw = SquaredPolynomWindow(self.model.getData()) dw = SquaredPolynomWindow(self.model.getData())
dw.exec() dw.exec()
except Exception as error: except Exception as error:
self.onError(error) onError(error)
@Slot() @Slot()
def on_transformPolynomAction_triggered(self): def on_transformPolynomAction_triggered(self):
@ -227,7 +227,7 @@ class MainWindow(QMainWindow):
dw = TransformPolynomWindow(self.model.getData()) dw = TransformPolynomWindow(self.model.getData())
dw.exec() dw.exec()
except Exception as error: except Exception as error:
self.onError(error) onError(error)
def closeEvent(self, event): def closeEvent(self, event):
if self.isDataChanged: if self.isDataChanged:
@ -252,13 +252,3 @@ class MainWindow(QMainWindow):
event.ignore() event.ignore()
else: else:
event.accept() event.accept()
def onError(self, errorName: Exception):
msgBox = buildMessageBox \
('Ошибка',
"Упс.. Произошла ошибка:\n" + str(errorName),
QMessageBox.Critical,
QMessageBox.Ok | QMessageBox.Cancel,
QMessageBox.Cancel)
msgBox.exec_()

View File

@ -28,7 +28,7 @@ from statapp.models.prediction_table_model import PreditionTableModel
from statapp.models.transform_polynom_model import TransformPolynomModel, TRANSFORMS from statapp.models.transform_polynom_model import TransformPolynomModel, TRANSFORMS
from statapp.polynoms.polynom_window import MplCanvas from statapp.polynoms.polynom_window import MplCanvas
from statapp.ui.ui_polynom_window import Ui_PolynomWindow from statapp.ui.ui_polynom_window import Ui_PolynomWindow
from statapp.utils import addIcon from statapp.utils import addIcon, onError
class TransformPolynomWindow(QDialog): class TransformPolynomWindow(QDialog):
@ -41,8 +41,11 @@ class TransformPolynomWindow(QDialog):
self.data = data self.data = data
result = linearPolynom(data) result = linearPolynom(data)
try:
predictionResult = prediction(data, result)
except Exception as error:
onError(error)
predictionResult = prediction(data, result)
self.predictionModel = PreditionTableModel(predictionResult) self.predictionModel = PreditionTableModel(predictionResult)
self.ui.predictionTableView.setModel(self.predictionModel) self.ui.predictionTableView.setModel(self.predictionModel)
header = self.ui.predictionTableView.horizontalHeader() header = self.ui.predictionTableView.horizontalHeader()
@ -90,7 +93,10 @@ class TransformPolynomWindow(QDialog):
tr = self.model.data(self.model.createIndex(j, 0), Qt.DisplayRole) tr = self.model.data(self.model.createIndex(j, 0), Qt.DisplayRole)
data[i][j] = TRANSFORMS[tr](data[i][j]) 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): def rebuildData(self, data):
result = linearPolynom(data) result = linearPolynom(data)

View File

@ -63,6 +63,15 @@ def buildMessageBox(title, text, icon, buttons, defaultButton):
return msgBox return msgBox
def onError(errorName: Exception):
msgBox = buildMessageBox \
('Ошибка',
"Упс.. Произошла ошибка:\n" + str(errorName),
QMessageBox.Critical,
QMessageBox.Ok,
QMessageBox.Ok)
msgBox.exec_()
class FloatDelegate(QStyledItemDelegate): class FloatDelegate(QStyledItemDelegate):
def __init__(self, parent=None): def __init__(self, parent=None):