Bonjour à tous !

Dans le cadre du développement d'une petite application sur Python3 et PyQt5, je suis amené à ouvrir par un click sur un chek_box, une petite fenêtre dans laquelle deux spin_box sont présents. Une fois les valeurs des spin_box validés par un push_button, la fenêtre se referme pour revenir sur la fenêtre principale.

Mon problème est que je n'arrive pas à récupérer les variables des spin_box de la seconde fenêtre dans ma fenêtre principale. Je ne sais pas du tout comment aborder le problème.

Mes fenêtres ont été réalisées à l'aide de QtDesigner. Je suis sur Python 3.7 et PyQt5. Mon programme se structure de la manière suivante :
- "main.py" : qui lance ma première fenêtre
- "random_data.py" qui possède toutes les fonctionnalités de ma fenêtre principale
- "intervalle_intervention.py" : qui possède les fonctionnalités de ma seconde fenêtre
- dossier "form" : contenant la fenêtre principale : "random_data_form.py", et qui contient aussi la seconde fenêtre : "intervalle_form.py"

J'ai créé dans ma classe RandomData, une fonction pour appeler la deuxième fenêtre lorsqu'on click sur le checkbox. Cette fonction se nomme "openIntervalleForm" et ressemble à ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
    def openIntervalleForm(self):
        Intervalle_intervention_form = IntervalleIntervention()
        Intervalle_intervention_form.exec_()
Le code présent dans le programme intervalle_intervention.py est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# -*- coding: utf-8 -*-
from PyQt5.QtWidgets import *
from form.intervalle_form import *
 
class IntervalleIntervention(QDialog, Ui_intervalle_form):
    def __init__(self):
        QDialog.__init__(self)
        print("setupUi")
        self.setupUi(self)
 
        self.pb_ok.clicked.connect(self.retourne_valeurs)
        self.pb_ok.clicked.connect(self.quitter)
        self.pb_annuler.clicked.connect(self.quitter)
 
    def retourne_valeurs(self):
        value_min = self.spin_min.value()
        value_max = self.spin_max.value()
        if value_min < value_max :
            if type(value_min) == int :
                if type(value_max) == int :
                    return(value_min, value_max)
 
                else :
                    Q = QMessageBox()
                    Q = QMessageBox.critical(Q, "Erreur", u"Les valeurs sont incorrectes")
            else:
                Q = QMessageBox()
                Q = QMessageBox.critical(Q, "Erreur", u"Les valeurs sont incorrectes")
        else:
            Q = QMessageBox()
            Q = QMessageBox.critical(Q, "Erreur", u"La valeur minimum est supérieur à la valeur maximum")
 
    def quitter(self):
        self.reject()
Les valeurs que je voudrais récupérer dans mon premier programme sont "value_min" et "value_max" autrement dit les valeurs des deux spin_box de ma fenêtre.

A l'heure actuelle, avec ce code, j'arrive à visualiser la seconde fenêtre et à gérer mes erreurs. Cependant, je n'arrive pas à capter mes variables dans mon premier programme.

Je ne sais pas si j'ai été très clair dans mes explications. Si je ne l'ai pas été, n'hésitez pas à me le dire.
Merci et bonne journée à tous.