Code source de palm_tracer.Settings.Groups.TracksCompute

"""
Fichier contenant la classe :class:`palm_tracer.Settings.Groups.TracksCompute` dérivée de :class:`.BaseSettingGroup`,
qui regroupe les paramètres de calcul sur les trajectoires nécessaires à la configuration de PALM Tracer.
"""

from dataclasses import dataclass

from palm_tracer.Settings.Groups.BaseSettingGroup import BaseSettingGroup
from palm_tracer.Settings.Types import CheckBox, Combo, SpinInt


##################################################
[docs] @dataclass class TracksCompute(BaseSettingGroup): """ Classe contenant les paramètres de Calcul sur les trajectoires : Attributs : - **MSD** (:class:`CheckBox <palm_tracer.Settings.Types.CheckBox.CheckBox>`) : Calcul du MSD par trajectoire et par plans successifs (par défaut : `False`). - **Instant Diffusion** (:class:`CheckBox <palm_tracer.Settings.Types.CheckBox.CheckBox>`) : Calcul de la diffusion instantanée par trajectoire et par plans successifs (par défaut : `False`). - **Fit Length** (:class:`SpinInt <palm_tracer.Settings.Types.SpinInt.SpinInt>`) : Longueur de la fenêtre de calcul initiale des métriques génériques (par défaut : `4`). - **3D** (:class:`CheckBox <palm_tracer.Settings.Types.CheckBox.CheckBox>`) : Utilisation ou non de la coordonnée Z dans les calculs (par défaut : `False`). - **Log Scale** (:class:`CheckBox <palm_tracer.Settings.Types.CheckBox.CheckBox>`) : Utilisation ou non d'une échelle logarithmique pour les résultats (par défaut : `False`). - **Fit** (:class:`Combo <palm_tracer.Settings.Types.Combo.Combo>`) : Méthode d'ajustement du mouvement de la trajectoire (par défaut : `None`). """ label: str = "Tracks Compute" setting_list = {"MSD": [CheckBox, ["MSD", "", False]], "Instant Diffusion": [CheckBox, ["Instant Diffusion", "", False]], "Fit Length": [SpinInt, ["Fit Length", "", 4, [2, 1000], 1]], "3D": [CheckBox, ["3D", "Use the Z-axis during computes.", False]], "Log Scale": [CheckBox, ["Log Scale", "Use log scale before saving results.", False]], "Fit": [Combo, ["Fit", "Expected tracks movement to fit.", 0, ["None", "Linear", "Power", "Exponential"]]]}
# ################################################## # def initialize_ui(self): # super().initialize_ui() # self._settings["Fit"].connect(self.toggle_fit_mode) # # ################################################## # def toggle_fit_mode(self, mode): # """Change le mode d'ajustement.""" # if mode == 0: # self._settings["Fit Length"].hide() # else: # self._settings["Fit Length"].show() ################################################## if __name__ == "__main__": import sys from qtpy.QtWidgets import QApplication, QVBoxLayout, QWidget app = QApplication(sys.argv) w = QWidget() lay = QVBoxLayout(w) # crée et assigne le layout au widget group = TracksCompute() group.active = True w.layout().addWidget(group.widget) w.show() sys.exit(app.exec_())