Python def释放后,PYQT信号是否断开def?
Python def释放后,PYQT信号是否断开def?,python,python-3.x,pyqt5,Python,Python 3.x,Pyqt5,loop是grab函数中的一个局部变量,grabAvailable是一个PyQT信号 grabAvailable会在(def grab)完成执行后自动断开loop.quit吗?还是我应该自己断开 我想知道这条线 def grab(self, cindex): global clients loop = QtCore.QEventLoop() clients[cindex]['botThreadWorker'].grabAvailable.connect(loop.quit
loop
是grab
函数中的一个局部变量,grabAvailable
是一个PyQT信号
grabAvailable会在(def grab)完成执行后自动断开loop.quit吗?还是我应该自己断开
我想知道这条线
def grab(self, cindex):
global clients
loop = QtCore.QEventLoop()
clients[cindex]['botThreadWorker'].grabAvailable.connect(loop.quit)
loop.exec_()
#clients[cindex]['botThreadWorker'].grabAvailable.disconnect(loop.quit)
如果pyqtSignal没有断开循环,可能会导致内存泄漏(多次调用def GRAP)。退出。您应该问自己的真正问题是:为什么要使用全局变量(以及一般的全局变量)?虽然从理论上讲,由于目标(
循环
)将被垃圾收集,信号将断开连接,但问题甚至在这之前就出现了。很明显,您正在使用一个类,那么是否真的需要一个全局类呢?
clients[cindex]['botThreadWorker'].grabAvailable.connect(loop.quit)