Un PyQt evento pulsante può essere collegato in modo normale ad una funzione in modo che la funzione riceve gli argomenti segnale standard (in questo caso il pulsante controllato stato):passare argomenti extra al fessura PyQt senza perdere argomenti predefinito dei segnali
def connections(self):
my_button.clicked.connect(self.on_button)
def on_button(self, checked):
print checked # prints "True"
Oppure, gli argomenti segnale di default possono essere sovrascritti con lambda
:
def connections(self):
my_button.clicked.connect(lambda: self.on_button('hi'))
def on_button(self, message):
print message # prints "hi"
c'è un bel modo per tenere entrambi gli argomenti di segnale in modo che possa essere ricevuto direttamente da una funzione come qui di seguito?
def on_button(self, checked, message):
print checked, message # prints "True, hi"
È possibile sottoclasse il pulsante e creare un nuovo segnale che emetterà lo stato di una pulsante e un messaggio. – SnoozeTime
[Eli Bendersky] (https://eli.thegreenplace.net) ha pubblicato [un articolo su questo] (https://eli.thegreenplace.net/2011/04/25/passing-extra-arguments-to-pyqt- slot) nel 2011. – delrocco