Bonjour,
Mon fils a un travail à faire en Python pour son école, et lorsque l'on teste son appli, nous avons un pb pour déclencher l'appel de la function Maj sur l'évènement du Slider.
Le print dans la fonction "slider_position" affiche bien le message dans la console,
mais le print dans la fonction Maj n'affiche rien, ce qui nous laisse penser que la fonction n'est pas appelée.
De plus à l'exécution de l'appli, il n'y a aucune exception ni erreur.
Nous avons réussi à appeler la fonction Maj depuis un bouton ou un menu, afin de tester qu'elle fonctionnait bien, mais nous n'arrivons pas à l'appeler depuis "slider_position".
Pourriez-vous nous dire ce qu'il manque svp ? (ou la bonne pratique, si le code ci-dessous peut être amélioré)
Voici le bout de code (il y a peut-être des imports en trop qu'il utilise par ailleurs):
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 from PyQt5.QtWidgets import QApplication, QMainWindow, QGridLayout, QWidget, QSlider from PyQt5.QtCore import pyqtSlot,pyqtSignal, Qt class FenetrePrincipale(QMainWindow): def __init__(self): super().__init__() self.gridLayout = QGridLayout() self.textLabel = QLabel (self) self.gridLayout.addWidget(self.textLabel, 0,0,1,1) self.slider = QSlider(Qt.Horizontal, self) self.slider.setMinimum(1) self.slider.setMaximum(4) self.gridLayout.addWidget(self.slider, 1,0,1,1) self.slider.sliderMoved.connect(self.slider_position) def Maj(self) : self.txt = "test" print (self.txt) def slider_position(self, v): if v == 1 : txt = 'Maj' self.Maj print (txt) self.textLabel.setText (txt) app = QApplication(sys.argv) maFenetrePrincipale = FenetrePrincipale() sys.exit(app.exec_())
Partager