5
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-スロット)。 – delrocco