From a7aba734a3421b7959fee0d5f3ad45d04a0cbee4 Mon Sep 17 00:00:00 2001 From: brahim Date: Wed, 26 Mar 2025 12:03:19 +0100 Subject: [PATCH 1/3] sample are plotted with different colors when fine and sand file are downloaded --- View/sample_data_tab.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/View/sample_data_tab.py b/View/sample_data_tab.py index 85cb76f..9d1467f 100644 --- a/View/sample_data_tab.py +++ b/View/sample_data_tab.py @@ -28,6 +28,7 @@ import pandas as pd import itertools import matplotlib.pyplot as plt +# from QtCore.QByteArray import length from matplotlib.colors import LogNorm, BASE_COLORS from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolBar @@ -189,6 +190,9 @@ class SampleDataTab(QWidget): self.combobox_x_axis = QComboBox() self.combobox_x_axis.addItems(['Concentration (g/L)', 'Concentration (%)']) + self.combobox_x_axis.setItemData(1, + "FINE : 100 * Cfine / (Cfine + Csand) | SAND : 100 * Csand / (Cfine + Csand)" + , Qt.ToolTipRole) self.gridLayout_groupbox_option_total_concentration_plot.addWidget(self.combobox_x_axis, 0, 1) self.label_y_axis = QLabel() @@ -246,6 +250,9 @@ class SampleDataTab(QWidget): self.pushbutton_plot_transect.clicked.connect(self.fill_comboboxes_and_plot_transect) + self.combobox_x_axis.currentIndexChanged.connect(self.plot_total_concentration) + self.combobox_y_axis.currentIndexChanged.connect(self.plot_total_concentration) + self.combobox_PSD_plot.currentTextChanged.connect(self.plot_PSD_fine_and_sand_sediments) # -------------------- Functions for Sample Data Tab -------------------- @@ -424,6 +431,8 @@ class SampleDataTab(QWidget): i, 0, self.comboBox_sample_table_fine[i] ) + self.comboBox_sample_table_fine[i].setCurrentIndex(i % len(list(color_list.keys()))) + self.comboBox_sample_table_fine[i]\ .currentTextChanged\ .connect(self.plot_total_concentration) @@ -469,8 +478,8 @@ class SampleDataTab(QWidget): self.tableWidget_fine.itemChanged.connect(self.plot_total_concentration) self.tableWidget_fine.itemChanged.connect(self.plot_PSD_fine_and_sand_sediments) - self.combobox_x_axis.currentIndexChanged.connect(self.plot_total_concentration) - self.combobox_y_axis.currentIndexChanged.connect(self.plot_total_concentration) + # self.combobox_x_axis.currentIndexChanged.connect(self.plot_total_concentration) + # self.combobox_y_axis.currentIndexChanged.connect(self.plot_total_concentration) self.plot_sample_position_on_transect() self.plot_total_concentration() @@ -521,6 +530,8 @@ class SampleDataTab(QWidget): i, 0, self.comboBox_sample_table_sand[i] ) + self.comboBox_sample_table_sand[i].setCurrentIndex(i % len(list(color_list.keys()))) + self.comboBox_sample_table_sand[i]\ .currentTextChanged\ .connect(self.plot_total_concentration) @@ -1367,6 +1378,11 @@ class SampleDataTab(QWidget): else: + self.tableWidget_fine.blockSignals(True) + self.tableWidget_sand.blockSignals(True) + self.combobox_x_axis.blockSignals(True) + self.combobox_y_axis.blockSignals(True) + self.verticalLayout_groupbox_plot_total_concentration.removeWidget(self.canvas_plot_total_concentration) self.verticalLayout_groupbox_plot_total_concentration.removeWidget(self.toolbar_plot_total_concentration) @@ -1632,6 +1648,11 @@ class SampleDataTab(QWidget): self.axis_total_concentration.legend(loc="upper right") self.figure_total_concentration.canvas.draw_idle() + self.tableWidget_fine.blockSignals(False) + self.tableWidget_sand.blockSignals(False) + self.combobox_x_axis.blockSignals(False) + self.combobox_y_axis.blockSignals(False) + def plot_PSD_fine_and_sand_sediments(self): """ Update the plot of Particle Size Distribution according to choices of x-axis and y-axis combo-boxes """ From e664aac86579c1a454efbed59cf9e15267b6deab Mon Sep 17 00:00:00 2001 From: brahim Date: Wed, 26 Mar 2025 14:18:37 +0100 Subject: [PATCH 2/3] logos are added and Authors section is also added --- View/about_window.py | 155 +++++++++++++++++++++++++++++++------------ 1 file changed, 114 insertions(+), 41 deletions(-) diff --git a/View/about_window.py b/View/about_window.py index d5a719d..56da4d5 100644 --- a/View/about_window.py +++ b/View/about_window.py @@ -23,6 +23,27 @@ from PyQt5.QtGui import QIcon, QPixmap, QFont from PyQt5.QtWidgets import (QWidget, QLabel, QHBoxLayout, QVBoxLayout, QApplication, QMainWindow, QGridLayout, QDialog, QDialogButtonBox, QPushButton, QTextEdit, QFrame, QLineEdit) from PyQt5.QtCore import Qt +import os + + +class Logos(): + + def __init__(self): + + self.logo_AcouSed = (os.path.join('logos', "AcouSed.png")) + + self.logo_INRAE = (os.path.join('logos', "BlocMarque-INRAE-Inter.jpg")) + + self.logo_OSR = (os.path.join('logos', "OSR.png")) + self.logo_europe = (os.path.join('logos', "Europe.png")) + self.logo_saone_rhone = (os.path.join('logos', "plan_Rhone_Saone.png")) + self.logo_carnot = (os.path.join('logos', "Carnot_EE.png")) + + self.logo_CNR = (os.path.join('logos', "CNR.png")) + self.logo_EDF = (os.path.join('logos', "EDF.png")) + self.logo_Ubertone = (os.path.join('logos', "Ubertone.jpg")) + +logos_inst = Logos() class AboutWindow(QDialog): @@ -31,12 +52,6 @@ class AboutWindow(QDialog): super().__init__() - self.logo_path = "./logos" - self.logo_AcouSed = QPixmap(self.logo_path + "/" + "AcouSed.png") - self.logo_AcouSed.scaled(16, 16, Qt.KeepAspectRatio, Qt.SmoothTransformation) - - self.logo_INRAE = QPixmap(self.logo_path + "/" + "BlocMarque-INRAE-Inter.jpg") - self.setGeometry(400, 200, 350, 200) self.setWindowTitle("About AcouSed") @@ -50,7 +65,8 @@ class AboutWindow(QDialog): # ---------------------------------------------------------- self.label_logo_AcouSed = QLabel() - self.label_logo_AcouSed.setPixmap(self.logo_AcouSed.scaledToHeight(128, Qt.SmoothTransformation)) + self.label_logo_AcouSed.setPixmap(QPixmap(logos_inst.logo_AcouSed). + scaledToHeight(128, Qt.SmoothTransformation)) self.gridLayout.addWidget(self.label_logo_AcouSed, 0, 0, 5, 1, Qt.AlignCenter) self.label_acoused = QLabel() @@ -64,7 +80,7 @@ class AboutWindow(QDialog): self.gridLayout.addWidget(self.label_date, 1, 1, 1, 1, Qt.AlignCenter) self.label_logo_INRAE = QLabel() - self.label_logo_INRAE.setPixmap(self.logo_INRAE.scaledToHeight(42, Qt.SmoothTransformation)) + self.label_logo_INRAE.setPixmap(QPixmap(logos_inst.logo_INRAE).scaledToHeight(42, Qt.SmoothTransformation)) self.gridLayout.addWidget(self.label_logo_INRAE, 2, 1, 1, 1, Qt.AlignCenter) self.label_contact = QLabel() @@ -103,11 +119,17 @@ class AboutWindow(QDialog): self.button_Copyright.clicked.connect(self.copyright_window) - self.button_Support = QPushButton() - self.button_Support.setText("Support") - self.gridLayout_button.addWidget(self.button_Support, 0, 2, 1, 1) + self.button_FundsPartners = QPushButton() + self.button_FundsPartners.setText("Funds/Patners") + self.gridLayout_button.addWidget(self.button_FundsPartners, 0, 2, 1, 1) - self.button_Support.clicked.connect(self.support_window) + self.button_FundsPartners.clicked.connect(self.funds_partners_window) + + self.button_Authors = QPushButton() + self.button_Authors.setText("Authors") + self.gridLayout_button.addWidget(self.button_Authors, 0, 3, 1, 1) + + self.button_Authors.clicked.connect(self.authors_window) def licence_window(self): lw = Licence() @@ -117,8 +139,12 @@ class AboutWindow(QDialog): cw = Copyright() cw.exec() - def support_window(self): - sw = Support() + def funds_partners_window(self): + sw = FundsPartners() + sw.exec() + + def authors_window(self): + sw = Authors() sw.exec() @@ -149,7 +175,7 @@ class Licence(QDialog): "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \n" "GNU General Public License for more details. \n\n" "You should have received a copy of the GNU General Public License \n" - "along with this program. If not, see .") + "along with this program. If not, see https://www.gnu.org/licenses/.") class Copyright(QDialog): @@ -158,9 +184,6 @@ class Copyright(QDialog): super().__init__() - self.logo_path = "./Logo" - self.logo_INRAE = QPixmap(self.logo_path + "/" + "BlocMarque-INRAE-Inter.jpg") - self.setWindowTitle("Copyright") self.setGeometry(500, 300, 200, 200) @@ -175,24 +198,17 @@ class Copyright(QDialog): "All Rights Reserved.") self.label_INRAE = QLabel() - self.label_INRAE.setPixmap(self.logo_INRAE.scaledToHeight(64, Qt.SmoothTransformation)) + self.label_INRAE.setPixmap(QPixmap(logos_inst.logo_INRAE).scaledToHeight(64, Qt.SmoothTransformation)) self.gridLayout.addWidget(self.label_INRAE, 1, 0, 1, 1, Qt.AlignCenter) -class Support(QDialog): +class FundsPartners(QDialog): def __init__(self): super().__init__() - self.logo_path = "./logos" - - self.logo_OSR = QPixmap(self.logo_path + '/' + "OSR.png") - self.logo_CNR = QPixmap(self.logo_path + '/' + "CNR.png") - self.logo_EDF = QPixmap(self.logo_path + '/' + "EDF.png") - self.logo_Ubertone = QPixmap(self.logo_path + '/' + "Ubertone.jpeg") - - self.setWindowTitle("Support") + self.setWindowTitle("Funds/Partners") self.setGeometry(500, 300, 300, 300) @@ -200,28 +216,85 @@ class Support(QDialog): self.setLayout(self.gridLayout) self.label_support = QLabel() - self.label_support.setText("The development of AcouSed was supported by OSR6 and CNR Company.") - self.gridLayout.addWidget(self.label_support, 0, 0, 1, 2, Qt.AlignLeft) + self.label_support.setText("The development of AcouSed software was funded by OSR, Carnot Eau & Environnement, INRAE and CNR Company. \n " + "It was made in collaboration with Ubertone and EDF Companies.") + self.gridLayout.addWidget(self.label_support, 0, 0, 1, 4, Qt.AlignLeft) self.label_OSR = QLabel() - self.label_OSR.setPixmap(self.logo_OSR.scaledToHeight(96, Qt.SmoothTransformation)) + self.label_OSR.setPixmap(QPixmap(logos_inst.logo_OSR).scaledToHeight(78, Qt.SmoothTransformation)) self.gridLayout.addWidget(self.label_OSR, 1, 0, 1, 1, Qt.AlignCenter) - self.label_CNR = QLabel() - self.label_CNR.setPixmap(self.logo_CNR.scaledToHeight(32, Qt.SmoothTransformation)) - self.gridLayout.addWidget(self.label_CNR, 1, 1, 1, 1, Qt.AlignCenter) + self.label_EUROPE = QLabel() + self.label_EUROPE.setPixmap(QPixmap(logos_inst.logo_europe).scaledToHeight(32, Qt.SmoothTransformation)) + self.gridLayout.addWidget(self.label_EUROPE, 1, 1, 1, 1, Qt.AlignCenter) - self.label_collaboration = QLabel() - self.label_collaboration.setText("It was made in collaboration with Ubertone and EDF Companies.") - self.gridLayout.addWidget(self.label_collaboration, 2, 0, 1, 2, Qt.AlignLeft) + self.label_SAONE_RHONE = QLabel() + self.label_SAONE_RHONE.setPixmap(QPixmap(logos_inst.logo_saone_rhone).scaledToHeight(64, Qt.SmoothTransformation)) + self.gridLayout.addWidget(self.label_SAONE_RHONE, 1, 2, 1, 1, Qt.AlignCenter) + + self.label_CARNOT = QLabel() + self.label_CARNOT.setPixmap(QPixmap(logos_inst.logo_carnot).scaledToHeight(78, Qt.SmoothTransformation)) + self.gridLayout.addWidget(self.label_CARNOT, 1, 3, 1, 1, Qt.AlignCenter) + + self.label_INRAE = QLabel() + self.label_INRAE.setPixmap(QPixmap(logos_inst.logo_INRAE).scaledToHeight(32, Qt.SmoothTransformation)) + self.gridLayout.addWidget(self.label_INRAE, 2, 0, 1, 1, Qt.AlignCenter) + + self.label_CNR = QLabel() + self.label_CNR.setPixmap(QPixmap(logos_inst.logo_CNR).scaledToHeight(32, Qt.SmoothTransformation)) + self.gridLayout.addWidget(self.label_CNR, 2, 1, 1, 1, Qt.AlignCenter) self.label_Ubertone = QLabel() - self.label_Ubertone.setPixmap(self.logo_Ubertone.scaledToHeight(48, Qt.SmoothTransformation)) - self.gridLayout.addWidget(self.label_Ubertone, 3, 0, 1, 1, Qt.AlignCenter) + self.label_Ubertone.setPixmap(QPixmap(logos_inst.logo_Ubertone).scaledToHeight(24, Qt.SmoothTransformation)) + self.gridLayout.addWidget(self.label_Ubertone, 2, 2, 1, 1, Qt.AlignCenter) self.label_EDF = QLabel() - self.label_EDF.setPixmap(self.logo_EDF.scaledToHeight(48, Qt.SmoothTransformation)) - self.gridLayout.addWidget(self.label_EDF, 3, 1, 1, 1, Qt.AlignCenter) + self.label_EDF.setPixmap(QPixmap(logos_inst.logo_EDF).scaledToHeight(48, Qt.SmoothTransformation)) + self.gridLayout.addWidget(self.label_EDF, 2, 3, 1, 1, Qt.AlignCenter) + + +class Authors(QDialog): + + def __init__(self): + + super().__init__() + + self.setWindowTitle("Authors") + + self.setGeometry(500, 300, 300, 200) + + self.gridLayout = QGridLayout() + self.setLayout(self.gridLayout) + + self.label_adrien = QLabel() + self.label_adrien.setText("The development of AcouSed was based on Adrien VERGNE's PhD thesis work :") + self.gridLayout.addWidget(self.label_adrien, 0, 0, 1, 1, Qt.AlignLeft) + + self.label_adrien_thesis = QLabel() + self.label_adrien_thesis.setText( + " - Adrien Vergne thesis (2018): " + "< a href = https://theses.fr/2018GREAU046 > https://theses.fr/2018GREAU046 ") + self.gridLayout.addWidget(self.label_adrien_thesis, 1, 0, 1, 1) + + self.label_adrien_2020 = QLabel() + self.label_adrien_2020.setText( + " - Vergne A., Le Coz J., Berni C., & Pierrefeu G. (2020), Water Resources Research, 56(2): " + "< a href = https://doi.org/10.1029/2019WR024877 > https://doi.org/10.1029/2019WR024877 ") + self.gridLayout.addWidget(self.label_adrien_2020, 2, 0, 1, 1) + + self.label_adrien_2021 = QLabel() + self.label_adrien_2021.setText( + " - Vergne A., Berni C., Le Coz J., & Tencé F., (2021), Water Resources Research, 57(9): " + "< a href = https://doi.org/10.1029/2021WR029589 > https://doi.org/10.1029/2021WR029589 ") + self.gridLayout.addWidget(self.label_adrien_2021, 3, 0, 1, 1) + + self.label_brahim = QLabel() + self.label_brahim.setText("\n Acoused was designed and developped by Brahim MOUDJED from 2022 to 2025. \n") + self.gridLayout.addWidget(self.label_brahim, 4, 0, 1, 1) + + self.label_PA = QLabel() + self.label_PA.setText("TECC company (< a href = https://parouby.fr/ > https://parouby.fr/ ) was involved in 2025 to improve program architecture.") + self.gridLayout.addWidget(self.label_PA, 5, 0, 1, 1) # if __name__ == "__main__": From bc1479208b1989e9179b97881f9c8c7de8576107 Mon Sep 17 00:00:00 2001 From: brahim Date: Wed, 26 Mar 2025 14:19:31 +0100 Subject: [PATCH 3/3] add/update of logos --- logos/Carnot_EE.png | Bin 0 -> 5310 bytes logos/Europe.png | Bin 0 -> 7032 bytes logos/Ubertone.jpeg | Bin 4519 -> 0 bytes logos/Ubertone.jpg | Bin 0 -> 16704 bytes logos/plan_Rhone_Saone.png | Bin 0 -> 5726 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 logos/Carnot_EE.png create mode 100644 logos/Europe.png delete mode 100644 logos/Ubertone.jpeg create mode 100644 logos/Ubertone.jpg create mode 100644 logos/plan_Rhone_Saone.png diff --git a/logos/Carnot_EE.png b/logos/Carnot_EE.png new file mode 100644 index 0000000000000000000000000000000000000000..0baa46a19c9c781ad4b113d632b9f64a495cfce8 GIT binary patch literal 5310 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 Q1poj507*qoM6N<$g1I0z4FCWD literal 0 HcmV?d00001 diff --git a/logos/Europe.png b/logos/Europe.png new file mode 100644 index 0000000000000000000000000000000000000000..c5a191eef8a4c4c96b5bffe4fbf3e27f8658d634 GIT binary patch literal 7032 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 K!^d;$ocJFIpH1HY diff --git a/logos/Ubertone.jpg b/logos/Ubertone.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ccf411f608feee0f332a4968b4c65ba72e3b8863 GIT binary patch literal 16704 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