擅长:python、mysql、java
<p>要回答有关如何在python中发出信号的问题:</p>
<P>不同于C++,当发出<EM>用户定义的EEM> PYQT信号(相对于Qt 1)时,应该省略签名。</p>
<p>因此,要发出信号,请执行以下操作:</p>
<pre><code>thread.emit(QtCore.SIGNAL('newArtworkAvailable'), icon)
</code></pre>
<p>要连接到信号,请执行以下操作:</p>
<pre><code>widget.connect(thread, QtCore.SIGNAL('newArtworkAvailable'),
widget.setNewArtwork)
</code></pre>
<p>我只想说清楚:</p>
<p>为了实现这一点,非gui线程必须发出信号,然后由主gui线程中的适当小部件接收信号。在非gui线程中创建<code>QImage</code>应该是可以的,但是不要试图在主线程之外调用任何与gui相关的方法。</p>
<p><strong>注意:</p>
<p>我在这里使用了旧式的信号语法,因为这就是您所使用的。不过,您可能想看看PyQt的<a href="http://pyqt.sourceforge.net/Docs/PyQt4/new_style_signals_slots.html" rel="nofollow">new-style signal and slot support</a>,因为它更灵活,更像Python。</p>