Событие кнопки PyQt может быть подключено обычным образом к функции, так что функция получает аргументы сигнала по умолчанию (в этом случае состояние кнопки проверено):Передача дополнительных аргументов в слот PyQt без потери аргументов сигнала по умолчанию
def connections(self):
my_button.clicked.connect(self.on_button)
def on_button(self, checked):
print checked # prints "True"
Или аргументы сигнальные по умолчанию можно изменить с помощью lambda
:
def connections(self):
my_button.clicked.connect(lambda: self.on_button('hi'))
def on_button(self, message):
print message # prints "hi"
есть хороший способ держать оба аргумента сигнала, поэтому он может быть непосредственно получен с помощью функции, как показано ниже?
def on_button(self, checked, message):
print checked, message # prints "True, hi"
Вы можете унаследовать кнопку и создать новый сигнал, который будет излучать состояние и сообщение. – SnoozeTime
[Eli Bendersky] (https://eli.thegreenplace.net) опубликовал [статью об этом] (https://eli.thegreenplace.net/2011/04/25/passing-extra-arguments-to-pyqt- слот) в 2011 году. – delrocco