Nir*_*Izr 10 python pyqt signals-slots pyqt5
我正在使用pyqt5,并且我使用类似于以下的代码连接了几个方法:
self.progress.canceled.connect(self.cancel)
Run Code Online (Sandbox Code Playgroud)
例如,在哪里self.cancel
:
def cancel(self):
self.timer.stop()
Run Code Online (Sandbox Code Playgroud)
此代码似乎在多个方案中干净利落地工作,而没有装饰cancel
用pyqtSlot
或做什么特别的吧.
我的问题是:
pyqtSlot
?ekh*_*oro 14
主要目的pyqtSlot
是允许定义槽的几个不同的重载,每个重载具有不同的签名.在进行跨线程连接时有时也可能需要它(对于一个这样的场景,请参阅此答案).但是,这些用例相对较少,并且在大多数PyQt应用程序中根本不需要使用pyqtSlot
.信号可以连接到任何python可调用对象,无论它是否被装饰为插槽.
PyQt文档还说明:
将信号连接到装饰的Python方法还具有减少内存使用量的优势,并且速度稍快.
然而,在实践中,这种优势通常非常小并且经常被其他因素所淹没.它对原始信令速度的影响很小,在开始对cpu负载或内存使用产生重大影响之前,有必要制作数千个 emits/connections.有关这些要点的深入分析,请参阅@Schollii撰写的此代码项目文章:
归档时间: |
|
查看次数: |
1883 次 |
最近记录: |