Zdarzenie przycisku PyQt można podłączyć w normalny sposób do funkcji, dzięki czemu funkcja odbiera domyślne argumenty sygnału (w tym przypadku stan sprawdzania przycisku):Przekaż dodatkowe argumenty do slotu PyQt bez utraty domyślnych argumentów sygnałowych
def connections(self):
my_button.clicked.connect(self.on_button)
def on_button(self, checked):
print checked # prints "True"
Albo argumenty domyślne sygnałowe mogą być nadpisane przy użyciu lambda
:
def connections(self):
my_button.clicked.connect(lambda: self.on_button('hi'))
def on_button(self, message):
print message # prints "hi"
Czy jest to dobry sposób, aby utrzymać oba argumenty sygnału dzięki czemu może być otrzymana bezpośrednio przez funkcję jak poniżej?
def on_button(self, checked, message):
print checked, message # prints "True, hi"
Można podklasa przycisk i utworzyć nowy sygnał, który będzie emitował od stanu przycisk i wiadomość. – SnoozeTime
[Eli Bendersky] (https://eli.thegreenplace.net) opublikował [artykuł na ten temat] (https://eli.thegreenplace.net/2011/04/25/passing-extra-arguments-to-pyqt- slot) w 2011 roku. – delrocco