2

私はシグナルを持っていますが、それはただ1つのことをする必要があります:放出された場合、変数に与えられた値を割り当てます。このためのメソッドを作成するのはばかげているように思われるので、私は考えていました:このようなことをする方法はありますか?

self.myButton.clicked.connect(self.someVariable = None)
4

1 に答える 1

2

ラムダを使用する:

self.myButton.clicked.connect(lambda : self.someVariable = None)

ノート:

  1. selfスロット呼び出し時に参照されるため、次のことを行うことができます。

    self.myButton.clicked.connect(lambda self=self: self.someVariable = None)

  2. 一部のウィジェットはパラメーターを使用してシグナルを送信するため、それらをラムダ定義に入れる必要があります。

        self.myButton.clicked.connect(lambda checked=False, self=self: self.someVariable = None)

アップデート:

ラムダでは割り当てが許可されていないため、実際の関数などを使用する必要があります。

self.myButton.clicked.connect(lambda self=self: setattr(self, 'someVariable', None))
于 2012-07-26T14:21:17.950 に答える