Bonjour,

je n'ai pas une formation de développeur. C’est pourquoi j'ai besoin de vos expériences.
J'ai un script (qui marche dans l'état mais ...) qui construit des boutons en fonction des changements d'un Qcombo, en fait à chaque fois que je fais un choix cela me reconstruit des boutons (120) et cela les place dans un gridLAyout.
Je me pose une question, si je laisse ma fenêtre ouverte toute la journée, et si je fais des changement dans le combo et donc je rebuild des boutons, je vais saturer la memoire (certainement pas au vu de mon application pas trop gourmande mais dans la théorie )
J'aimerais savoir comment je pourrais faire pour remplacer (vraiment) les anciens boutons par les nouveaux.
Je poste un passage du code (les boutons ouvrent des movs, ils auront à chaque fois une couleur en fonction des étapes choisies dans le Qcombo) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
# build step items
		self.myLabel = QtWidgets.QLabel("Steps : ")
		self.myLabel.setAlignment(QtCore.Qt.AlignRight)
		self.my_grid_layout.addWidget(self.myLabel,1,6,1,1)
		self.my_input_steps = QtWidgets.QComboBox(self)
		self.my_input_steps.addItem("")
 
		for each_step in self.my_steps:
			self.my_input_steps.addItem(each_step)
		self.my_input_steps.currentIndexChanged.connect(self.build_shots)
		self.my_grid_layout.addWidget(self.my_input_steps,1,7,1,1)

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
 
def build_shots(self):
		# Get selected episode
		self.my_get_episode = self.my_input_episode.currentText()
		self.my_console.setText("Episode : "+self.my_get_episode)
		self.my_console.setStyleSheet("color:white")
 
		# Get selected episode
		self.my_get_steps = self.my_input_steps.currentText()
		self.my_console.setText("Episode : "+self.my_get_episode + " --- "+self.my_get_steps )
		self.my_console.setStyleSheet("color:green;font-weight:bold")
 
		# change the color of my_input_episode and my_input_steps
		if self.my_get_episode != "":
			self.my_input_episode.setStyleSheet("background-color:#004666")
		else:
			self.my_input_episode.setStyleSheet("background-color:#4F4F4F")
		if self.my_get_steps != "":
			self.my_input_steps.setStyleSheet("background-color:#004666")
		else:
			self.my_input_steps.setStyleSheet("background-color:#4F4F4F")
 
		# HERE WE BUILD THE BUTTONS
		if self.my_get_steps != "" and self.my_get_episode != "":
			# Build shots
			my_list_shots = ['']
			for x in xrange(1,100):
				my_list_shots.append(str(x))
 
			x=2 # line 1 has the menu
			y=1 # row
			incrementLineX=1 # every 10 we go to line 2 (x+1) and reset incrementLine and y (row) to 1
			for i in xrange(1,121):
				try:
					my_shot_number=my_list_shots[i]
					my_shot_number = "%03d"%int(my_shot_number)
					self.buttons = QtWidgets.QPushButton(my_shot_number,self)
					self.buttons.setStyleSheet("background-color:brown;color:white")
					self.buttons.clicked.connect(partial(self.my_open_mov,my_shot_number))
					self.my_grid_layout.addWidget(self.buttons,x,y,1,1)
				except Exception as e:
					self.buttons = QtWidgets.QPushButton("",self)
					self.buttons.setEnabled(False)
					my_shot_number=""				
				y=y+1
				incrementLineX=incrementLineX+1
				if incrementLineX>10:
					x=x+1
					y=1
					incrementLineX = 1
J'aimerais vraiment être dans la bonne direction, j'ai regardé du coté de deleteLater mais je ne suis pas certain de bien comprendre.
merci beaucoup de votre aide