from PyQt4.QtGui import * from PyQt4.QtCore import * import os,sys class MaFenetre(QWidget): def __init__(self): QWidget.__init__(self) self.setFixedSize(200,200) self.setWindowTitle("Les signaux et les slots pau6 (univ Pau)") # Un objet QSlider pour définir la largeur de la fenêtre self.sliderL=QSlider(Qt.Horizontal,self) self.sliderL.setGeometry(10,40,100,20) self.sliderL.setRange(200,600) self.connect(self.sliderL,SIGNAL("valueChanged(int)"),self.changerLargeur) "changerLargeur possède la paramètre l qui prend la valeur du int de valueChanged" # Un autre objet QSlider pour définir la hauteur de la fenêtre self.sliderH=QSlider(Qt.Vertical,self) self.sliderH.setGeometry(120,10,20,150) self.sliderH.setRange(200,350) self.connect(self.sliderH,SIGNAL("valueChanged(int)"),self.changerHauteur) "changerHauteur possède la paramètre l qui prend la valeur du int de valueChanged" self.connect(self,SIGNAL("largeurMax(int)"),self.action) def changerLargeur(self,l): self.setFixedSize(l,self.height()) # Création d'un nouveau SIGNAL # le paramètre l de emit sera passé au slot connecté comme argument du signal if l==600: self.emit(SIGNAL("largeurMax(int)"),l) def changerHauteur(self,l): self.setFixedSize(self.width(),l) # Définition d'un slot répondant au signal largeurMax(int) def action(self,l): m=QMessageBox.warning(self,self.tr("Attention largeur"),self.tr(str(l)+" c'est trop large"),QMessageBox.Ok) if __name__=='__main__': a=QApplication(sys.argv) maFenetre=MaFenetre() maFenetre.show() r=a.exec_()