<p>我想要一个pyqt信号,它可以用python“object”子类参数发出,也可以不发出。例如,我可以这样做:</p>
<pre><code>valueChanged = pyqtSignal([MyClass], ['QString'])
</code></pre>
<p>但不是这个:</p>
<pre><code>valueChanged = pyqtSignal([MyClass], ['None'])
TypeError: C++ type 'None' is not supported as a pyqtSignal() type argument type
</code></pre>
<p>或者这个:</p>
<pre><code>valueChanged = pyqtSignal([MyClass], [])
TypeError: signal valueChanged[MyObject] has 1 argument(s) but 0 provided
</code></pre>
<p>我也尝试了没有引号和c++等价的“空”。但两种方法都不管用。我需要做什么才能让这件事成功?</p>
<p>您不需要指定第二个选项-它将接受类类型的指针,该指针已经可以是None值:</p>
<pre><code>valueChanged = pyqtSignal(MyClass)
# both will work as is
inst.valueChanged.emit(MyClass())
inst.valueChanged.emit(None)
</code></pre>