Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python def释放后,PYQT信号是否断开def?_Python_Python 3.x_Pyqt5 - Fatal编程技术网

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)