| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- from PyQt5.QtWidgets import QWidget, QLabel, QPushButton, QVBoxLayout, QFileDialog, QComboBox, QCheckBox
- import sys
- # sys.path.append("C:/Users/iuliia/recoUI/serv")
- from jsonSelectionWindow import JsonSelectionWindow
- from reconsrtuctionApp import ReconstructionApp
- class StartApp(QWidget):
- def __init__(self):
- super().__init__()
- # print("TUT")
- self.path_np_data_json = None
- self.path_raw_data = None
- self.path_seq_json = None
- self.path_order_json = None
- self.reconstruction_app = None
- # print("Инициализация окна...")
- self.initUI()
- # print("Окно инициализировано.")
- def initUI(self):
- self.setWindowTitle('Реконструкция')
- layout = QVBoxLayout()
- self.digit_label = QLabel("Выберите (2d или 3d)")
- layout.addWidget(self.digit_label)
- self.digit_input = QComboBox(self)
- self.digit_input.addItems(['2d', '3d'])
- self.digit_input.currentTextChanged.connect(self.update_sequence_options)
- layout.addWidget(self.digit_input)
- self.sequence_label = QLabel("Имя последовательности")
- layout.addWidget(self.sequence_label)
- self.sequence_input = QComboBox(self)
- layout.addWidget(self.sequence_input)
- self.update_sequence_options(self.digit_input.currentText())
- # print(self.sequence_input.currentText(),self.digit_input.currentText())
- self.mat_file_button = QPushButton("Загрузить .mat файл", self)
- self.mat_file_button.clicked.connect(self.load_mat_file)
- layout.addWidget(self.mat_file_button)
- self.mat_file_label = QLabel("Файл .mat не выбран", self)
- layout.addWidget(self.mat_file_label)
- self.json_file_button = QPushButton("Загрузить .json файл", self)
- self.json_file_button.clicked.connect(self.load_json_file)
- layout.addWidget(self.json_file_button)
- self.json_file_label = QLabel("Файл .json не выбран", self)
- layout.addWidget(self.json_file_label)
- ####################################################
- self.open_order_json = QPushButton("Открыть окно выбора JSON", self)
- self.open_order_json.clicked.connect(self.open_json_selection_window)
- layout.addWidget(self.open_order_json)
- # print(self.sequence_input.currentText(),self.digit_input.currentText())
- # self.reconstruction_app = ReconstructionApp(self.sequence_input.currentText(), self.digit_input.currentText())
- # self.path_order_json = self.json_window.path_order_json
- self.phase_shift_checkbox = QCheckBox("Сдвиг по фазе (on/off)", self)
- self.phase_shift_checkbox.setChecked(False) # По умолчанию отключен
- layout.addWidget(self.phase_shift_checkbox)
- self.start_reco = QPushButton("Начать реконструкцию", self)
- self.start_reco.clicked.connect(self.init_reconstruction)
- layout.addWidget(self.start_reco)
- self.setGeometry(300, 300, 600, 500)
- self.setLayout(layout)
- def update_sequence_options(self, dimension):
- self.sequence_input.clear()
- if dimension == '2d':
- self.sequence_input.addItems([
- 'linear_decart',
- 'nonlinear_decart(tse)',
- 'linear_epi',
- 'radial_propeller',
- 'linear_decat_readout'
- ])
- elif dimension == '3d':
- self.sequence_input.addItems([
- 'linear_decart',
- 'nonlinear_decart(tse)'
- ])
- def load_mat_file(self):
- mat_file, _ = QFileDialog.getOpenFileName(self, "Выбрать .mat файл", "", "MAT Files (*.mat)")
- if mat_file:
- self.mat_file_label.setText(f"Загружен .mat файл: {mat_file}")
- else:
- self.mat_file_label.setText("Файл .mat не выбран")
- self.path_raw_data = mat_file
- def load_json_file(self):
- json_file, _ = QFileDialog.getOpenFileName(self, "Выбрать .json файл", "", "JSON Files (*.json)")
- if json_file:
- self.json_file_label.setText(f"Загружен .json файл: {json_file}")
- else:
- self.json_file_label.setText("Файл .json не выбран")
- self.path_np_data_json = json_file
- def open_json_selection_window(self):
- self.json_window = JsonSelectionWindow(
- self.path_np_data_json, self.path_raw_data,
- self.sequence_input.currentText(), self.digit_input.currentText())
- self.path_order_json = self.json_window.path_order_json
- # print(self.path_order_json)
- self.json_window.show()
- self.json_window.closeEvent = lambda event: self.update_order_json_path()
- # print(f"Изначальный путь JSON порядка: {self.path_order_json}")
- def update_order_json_path(self):
- self.path_order_json = self.json_window.path_order_json
- # print(f"Путь к JSON файлу порядка после выбора: {self.path_order_json}")
- # def start_reconstruction(self):
- def init_reconstruction(self):
- if self.phase_shift_checkbox.isChecked():
- # print("Флажок установлен: включён сдвиг по фазе.")
- # Добавьте действия, если флажок установлен
- phase_shift_enabled = True
- else:
- # print("Флажок не установлен: сдвиг по фазе выключен.")
- # Добавьте действия, если флажок не установлен
- phase_shift_enabled = False
- self.reconstruction_app = ReconstructionApp(
- self.sequence_input.currentText(),
- self.digit_input.currentText(),
- phase_shift_enabled
- )
- self.reconstruction_app.start_reconstruction(
- self.path_raw_data, self.path_np_data_json, self.path_order_json
- )
|