diff --git a/controller.py b/controller.py index c2d85f7..cd0bdfb 100644 --- a/controller.py +++ b/controller.py @@ -63,7 +63,8 @@ class Controller: percentage_item = self.view.table.item(row, 1) unit_widget = self.view.table.cellWidget(row, 2) conversion_item = self.view.table.item(row, 3) - dilution_widget = self.view.table.cellWidget(row, 4) + dilution_item = self.view.table.item(row, 4) + # Пропускаем строку, если какие-то обязательные поля отсутствуют if not all([name_item, percentage_item, conversion_item]): @@ -74,19 +75,8 @@ class Controller: percentage = float(percentage_item.text()) unit = unit_widget.currentText() if unit_widget else "мг" conversion_factor = float(conversion_item.text()) + dilution_factor = float(dilution_item.text()) - # Получаем коэффициент разбавления (поддерживаем QDoubleSpinBox и QLineEdit) - dilution_factor = 1.0 - if dilution_widget: - if isinstance(dilution_widget, QDoubleSpinBox): - dilution_factor = dilution_widget.value() - elif isinstance(dilution_widget, QLineEdit): - try: - dilution_factor = float(dilution_widget.text()) - except ValueError: - dilution_factor = 1.0 - - # Добавляем реагент в модель self.model.add_reagent(name, percentage, unit, conversion_factor, dilution_factor) except ValueError as e: raise ValueError(f"Ошибка в строке {row + 1}: {str(e)}") diff --git a/model.py b/model.py index f66bdd4..bad016a 100644 --- a/model.py +++ b/model.py @@ -63,6 +63,7 @@ class Model: # Шаг 2: Рассчитываем количество каждого реагента для неразбавленного состава undiluted_amounts = [] for reagent in self.reagents: + # Расчёт количества реагента в базовых единицах amount_in_base = (reagent.percentage / 100) * total_in_base @@ -90,6 +91,7 @@ class Model: # Количество разбавленного реагента = исходное количество / фактор разбавления diluted_amount = undiluted_amounts[i] * dilution_factor + diluted_amounts.append(diluted_amount) # Вычисляем объём разбавленного реагента в базовых единицах (мкл)