bonjour,
J'ai crée 2 fenêtres , dans chaque fenêtre y'a un bouton, et dans un autre fichier send.py ou il ya la class rackj'ai un classe dans une valeur DATA1 a était initialisé a 0;

quand je clique sur un bouton dans une des 2 fenêtre il incrémente la valeur de DATA (soit de 1 ou 2) selon la condition du combobox

quand je clique sur l'autre bouton dans l'autre fenêtre il prend la valeur de DATA qui a était dans initialisé a 0.

ce que je veux faire c'est que quand je change de fenêtre je veux que je continue a incrémenté la valeur de qui a était incrémenté déjà par l'autre bouton pas recommencé de zéro

CECI est le code du fichier send.py ou il ya la class rack :

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
35
36
37
38
39
40
41
42
43
44
45
46
from PCANBasic import *
 
class rack():
 
        def sendCANMessage(self):
 
 
 
 
 
                m_PCAN = PCANBasic()
 
                m_Result = m_PCAN.Initialize(PCAN_USBBUS1, PCAN_BAUD_500K)
 
 
 
                ARD1 = TPCANMsg()
 
                ARD1.ID = 0x461
                ARD1.LEN =8
                ARD1.DATA[0] = 0x07
                ARD1.DATA[1] = self.DATA1
 
 
                print(ARD1.DATA[1])
 
 
                ARD1.MSGTYPE = PCAN_MESSAGE_STANDARD
 
                m_Result = m_PCAN.Write(PCAN_USBBUS1,ARD1)
 
                if m_Result == PCAN_ERROR_OK :
                        print("ARD1 ++")
                else:
                    print("ARD1 Not Send")
 
                m_PCAN.Uninitialize(PCAN_USBBUS1)
 
        def initVariable(self):
                self.DATA1=0
 
        def getDATA(self):
                return self.DATA1
 
        def setDATA(self,data):
                self.DATA1 = data

voici le code de la première fenêtre:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# -*- coding: utf-8 -*-
 
from PyQt5 import QtCore, QtGui, QtWidgets
from send import *
from PCANBasic import *
 
 
 
 
class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(975, 603)
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(130, 110, 91, 21))
        self.pushButton.setObjectName("pushButton")
 
        self.comboBox = QtWidgets.QComboBox(Form)
        self.comboBox.setGeometry(QtCore.QRect(30, 110, 73, 22))
        self.comboBox.setObjectName("comboBox")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
 
        self.pushButton.clicked.connect(self.BTN1)
 
 
 
        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)
 
 
 
    def setRack(self,rack):
        self.u = rack
 
 
    def BTN1(self):
 
        x=int(self.comboBox.currentText())
 
        if x == 1:
 
            a= (1 + self.u.getDATA())
 
            self.u.setDATA(a)
            self.u.sendCANMessage()
 
 
        elif x == 2:
            b= (2 + self.u.getDATA())
            self.u.setDATA(b)
            self.u.sendCANMessage()
 
 
 
 
 
 
 
 
    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.pushButton.setText(_translate("Form", "BTN1"))
 
        self.comboBox.setItemText(0, _translate("Form", "1"))
        self.comboBox.setItemText(1, _translate("Form", "2"))
 
 
 
 
 
 
 
 
 
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Form = QtWidgets.QWidget()
    ui = Ui_Form()
    ui.setupUi(Form)
    Form.show()
 
    u = rack()
    u.initVariable()
    ui.setRack(u)
    sys.exit(app.exec_())

le code de la 2 eme fenêtre :

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
 
 
 
 
# -*- coding: utf-8 -*-
 
from PyQt5 import QtCore, QtGui, QtWidgets
from PCANBasic import *
from send import rack
 
 
 
 
class Ui_Form1(rack):
    def setupUi(self, Form1):
        Form1.setObjectName("Form1")
        Form1.resize(770, 561)
        self.pushButton = QtWidgets.QPushButton(Form1)
        self.pushButton.setGeometry(QtCore.QRect(130, 70, 93, 28))
        self.pushButton.setObjectName("pushButton")
        self.comboBox = QtWidgets.QComboBox(Form1)
        self.comboBox.setGeometry(QtCore.QRect(30, 70, 73, 22))
        self.comboBox.setObjectName("comboBox")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
 
 
        self.pushButton.clicked.connect(self.BTN1)
 
 
 
        self.retranslateUi(Form1)
        QtCore.QMetaObject.connectSlotsByName(Form1)
 
 
 
    def setRack(self,rack):
        self.u = rack
 
 
    def BTN1(self):
 
        x=int(self.comboBox.currentText())
 
        if x == 1:
 
            a= (1 + self.u.getDATA())
            print(a)
            self.u.setDATA(a)
            self.u.sendCANMessage()
            print("Communication BTN1 Detected")
 
        elif x == 2:
            b= (2+ self.u.getDATA())
            self.u.setDATA(b)
            self.u.sendCANMessage()
 
            print("Communication BTN1 NOT Detected")
 
 
 
 
 
 
    def retranslateUi(self, Form1):
        _translate = QtCore.QCoreApplication.translate
        Form1.setWindowTitle(_translate("Form1", "Form1"))
        self.pushButton.setText(_translate("Form1", "BTN9"))
        self.comboBox.setItemText(0, _translate("Form1", "1"))
        self.comboBox.setItemText(1, _translate("Form1", "2"))
 
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Form1 = QtWidgets.QWidget()
    ui = Ui_Form1()
    ui.setupUi(Form1)
    Form1.show()
 
    u = rack()
    u.initVariable()
    ui.setRack(u)
 
    sys.exit(app.exec_())

je ne sais pas si je doit crée un autre fichier python et faire appel a les 2 autre fenetre car il faut a chaque fois que j'initialise dans chaque fichiers la valeur de DATA1 c'est pour c'a que il revient souvent a zéro.

merci pour votre aide