Source code for src.utils.data_exportation.data_exportation_view
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Data Exportation View
"""
from PyQt5.QtWidgets import QWidget, QHBoxLayout, QPushButton, QVBoxLayout, QCheckBox, QLabel, QLineEdit, QFileDialog
__author__ = "Lemahieu Antoine"
__copyright__ = "Copyright 2022"
__credits__ = ["Lemahieu Antoine"]
__license__ = "GNU General Public License v3.0"
__maintainer__ = "Lemahieu Antoine"
__email__ = "Antoine.Lemahieu@ulb.be"
__status__ = "Dev"
[docs]class dataExportationView(QWidget):
def __init__(self):
"""
Window displaying the parameters for exporting the data.
"""
super().__init__()
self.data_exportation_listener = None
self.export_data_path = None
self.global_layout = QVBoxLayout()
self.setLayout(self.global_layout)
self.setWindowTitle("Data Exportation")
# Exportation
self.export_data_widget = QWidget()
self.export_data_layout = QVBoxLayout()
self.export_data_check_box = QCheckBox()
self.export_data_check_box.setText("Export the data into a TXT file after the computation : ")
self.export_data_layout.addWidget(self.export_data_check_box)
self.export_data_widget.setLayout(self.export_data_layout)
self.export_data_path_widget = QWidget()
self.export_data_path_layout = QHBoxLayout()
self.export_data_path_label = QLabel("Export file path : ")
self.export_data_path_line = QLineEdit()
self.export_data_path_button = QPushButton("...")
self.export_data_path_button.clicked.connect(self.export_data_path_clicked)
self.export_data_path_layout.addWidget(self.export_data_path_label)
self.export_data_path_layout.addWidget(self.export_data_path_line)
self.export_data_path_layout.addWidget(self.export_data_path_button)
self.export_data_path_widget.setLayout(self.export_data_path_layout)
# Cancel Confirm
self.cancel_confirm_widget = QWidget()
self.cancel_confirm_layout = QHBoxLayout()
self.cancel = QPushButton("&Cancel", self)
self.cancel.clicked.connect(self.cancel_data_exportation_trigger)
self.confirm = QPushButton("&Confirm", self)
self.confirm.clicked.connect(self.confirm_data_exportation_trigger)
self.cancel_confirm_layout.addWidget(self.cancel)
self.cancel_confirm_layout.addWidget(self.confirm)
self.cancel_confirm_widget.setLayout(self.cancel_confirm_layout)
self.global_layout.addWidget(self.export_data_widget)
self.global_layout.addWidget(self.export_data_path_widget)
self.global_layout.addWidget(self.cancel_confirm_widget)
"""
Triggers
"""
[docs] def cancel_data_exportation_trigger(self):
"""
Send the information to the controller that the computation is cancelled.
"""
self.data_exportation_listener.cancel_button_clicked()
[docs] def confirm_data_exportation_trigger(self):
"""
Retrieve the parameters and send the information to the controller.
"""
if self.export_data_check_box.isChecked():
export_path = self.export_data_path
else:
export_path = None
self.data_exportation_listener.confirm_button_clicked(export_path)
[docs] def export_data_path_clicked(self):
"""
Get the path to the file when wanting to export the data.
"""
path_to_file = QFileDialog().getSaveFileName(self, "Export data to TXT file")
self.export_data_path = path_to_file[0]
self.export_data_path_line.setText(self.export_data_path)
"""
Setters
"""
[docs] def set_listener(self, listener):
"""
Set the listener to the controller.
:param listener: Listener to the controller.
:type listener: controller
"""
self.data_exportation_listener = listener