私はpyqt5を使用している、と私はいくつかの方法は次のようなコードを使用して接続していますpyqtSlotで接続スロットを飾る必要があるのはなぜですか?
self.progress.canceled.connect(self.cancel)
場合には、例えば、self.cancel
は次のとおりです。
def cancel(self):
self.timer.stop()
このコードはできれいに動作しているようです複数のシナリオで、cancel
をpyqtSlot
で飾ることなく、または特別なことを何もしなくても可能です。
私の質問は以下のとおりです。私はこのようにそれを行うことによって
- 何を失うのですか?
pyqtSlot
が必要な理由は何ですか?
、(少なくともPySide''で:これらのポイントの深さ分析でのために、@Scholliiすることにより、このコードプロジェクトの資料を参照してください。スレッド間で信号データを送信する場合は、スロットデコレータを使用する必要があります。 @BrendanAbel。 –
PySideまたはPyQtのクロススレッド信号には必要ありません。唯一の例外は、オブジェクトが別のスレッドに移動する前に信号が接続されている場合ですが、PyQtにのみ影響します。これは上記の私の答えで述べたシナリオです(より完全な説明は[[他の回答](http://stackoverflow.com/a/20818401/984421)参照)。 – ekhumoro