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:
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:
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:
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