Исправлен баг с подсчётом объёма разбавленного реагента

This commit is contained in:
2026-05-07 06:20:13 +05:00
parent 15193d2403
commit 0b54165e99
2 changed files with 5 additions and 13 deletions
+3 -13
View File
@@ -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)}")
+2
View File
@@ -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)
# Вычисляем объём разбавленного реагента в базовых единицах (мкл)