PyQt でスロットを Lambda 関数に接続する
スロットを Lambda 関数に接続しようとする場合、引数がどのように処理されるかを理解することが重要です。提供されているコード サンプルでは、ループ内で複数のボタンを接続するときに問題が発生します。
最初の 2 つのボタンでは、ラムダ式が正しく定義され、接続されています。
ボタンの場合ループ内で接続されている場合、問題はラムダ式にあります:
この場合、QPushButton.clicked シグナルボタンの状態を示す引数を発行します。ただし、ラムダ スロットに接続する場合、オプションの引数 idx はボタンの状態によって上書きされます。
これを解決するには、接続を次のように定義する必要があります。
これは、ボタンの状態を確認し、正しい値を button_pushed メソッドに渡します。
要約すると、に渡される引数に注意することが重要です。スロットを接続するときにラムダ関数が使用されます。発行されたシグナルの引数を適切に処理することで、正しい値がメソッドに確実に渡されるようにすることができます。
以上がPyQt でスロットを Lambda 関数に正しく接続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。