pyqt5信号与槽(父控件与子控件通信)
在子控件定义信号
记住信号的定义必须是类属性 即在方法外定义
getScoreSignal = pyqtSignal(int)
触发信号的操作
#记住必须传递int类型的参数score self.getScoreSignal.emit(score)
在父控件中与槽连接
#canvas是子控件 self.canvas.getScoreSignal.connect(self.getScoreAction)
槽函数
#这个score就是信号的int类型参数 def getScoreAction(self, score): QApplication.beep() value = self.scoreNumber.intValue() newValue = value + score self.scoreNumber.display(newValue) #更新speed if value / levelStep != newValue / levelStep: self.levelNumber.display(newValue / levelStep) self.canvas.speed *= percent
至此,只要子控件发出getScoreSignal信号,父控件就会调用其槽函数getScoreAction