Реализация функционала полнофакторного эксперимента
This commit is contained in:
+12
-16
@@ -1,7 +1,8 @@
|
||||
from PyQt5.QtWidgets import QMessageBox, QFileDialog, QTableWidgetItem, QComboBox, QLineEdit
|
||||
from PyQt5.QtWidgets import QMessageBox, QFileDialog, QTableWidgetItem, QComboBox, QLineEdit, QDoubleSpinBox
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtGui import QColor
|
||||
from model import Model
|
||||
from view import MainWindow as MediumCalculatorView
|
||||
from view import MediumCalculatorWindow
|
||||
import json
|
||||
from reagent import Reagent
|
||||
|
||||
@@ -9,10 +10,9 @@ from reagent import Reagent
|
||||
class Controller:
|
||||
def __init__(self):
|
||||
self.model = Model()
|
||||
self.view = MediumCalculatorView()
|
||||
self.view = MediumCalculatorWindow()
|
||||
self._connect_signals()
|
||||
# Убираем автоматический показ окна - теперь он вызывается из главного меню
|
||||
# self.view.show()
|
||||
|
||||
|
||||
def _connect_signals(self):
|
||||
"""Подключает обработчики событий интерфейса"""
|
||||
@@ -118,26 +118,22 @@ class Controller:
|
||||
|
||||
self.view.table.setItem(row, 0, QTableWidgetItem(reagent.name))
|
||||
self.view.table.setItem(row, 1, QTableWidgetItem(f"{reagent.percentage:.2f}"))
|
||||
|
||||
|
||||
# Единица - QComboBox
|
||||
unit_combo = QComboBox()
|
||||
unit_combo.addItems(["нг", "мкг", "мг", "г", "кг", "нл", "мкл", "мл", "л"])
|
||||
unit_combo.setCurrentText(reagent.unit)
|
||||
self.view.table.setCellWidget(row, 2, unit_combo)
|
||||
|
||||
|
||||
self.view.table.setItem(row, 3, QTableWidgetItem(f"{reagent.conversion_factor:.2f}"))
|
||||
|
||||
# Создаём поле для разбавления (QLineEdit для ручного ввода)
|
||||
dilution_edit = QLineEdit()
|
||||
dilution_edit.setText(f"{getattr(reagent, 'dilution_factor', 1.0):.3f}")
|
||||
dilution_edit.setAlignment(Qt.AlignRight)
|
||||
dilution_edit.setToolTip("Во сколько раз разбавить (1 = без разбавления)")
|
||||
self.view.table.setCellWidget(row, 4, dilution_edit)
|
||||
|
||||
|
||||
# Разбавление - обычная ячейка
|
||||
self.view.table.setItem(row, 4, QTableWidgetItem(f"{getattr(reagent, 'dilution_factor', 1.0):.3f}"))
|
||||
|
||||
self.view.table.setItem(row, 5, QTableWidgetItem(""))
|
||||
|
||||
# Очищаем результаты
|
||||
self.view.clear_results()
|
||||
|
||||
def save_composition(self):
|
||||
"""Сохраняет состав среды в JSON-файл"""
|
||||
filename, _ = QFileDialog.getSaveFileName(
|
||||
|
||||
Reference in New Issue
Block a user