gpt4 book ai didi

python - PyQt5:使用槽/信号时 self 是 NoneType

转载 作者:太空宇宙 更新时间:2023-11-03 18:36:54 25 4
gpt4 key购买 nike

我在尝试在自定义类上使用槽/信号时遇到一些问题。

该类如下所示:

import sys
from PyQt5 import QtCore
from PyQt5.QtGui import QGuiApplication, QPixmap

class Screenshot(QtCore.QObject):
newScreenshotTaken = QtCore.pyqtSignal(QPixmap)
timer = QtCore.QTimer()
captureInterval = 5 * 60

def __init__(self):
super(Screenshot, self).__init__()

def startCapture(self):
self.capture()

def stopCapture(self):
self.timer.stop()

def on_userStartedCapture(self):
self.startCapture()

def on_userStoppedCapture(self):
self.stopCapture()

def capture(self):
print("capture!")

错误发生在on_userStartedCapture(self)处:

  File "/Volumes/HD2/test/screenshot.py", line 23, in on_userStartedCapture
self.startCapture()
AttributeError: 'NoneType' object has no attribute 'startCapture'

从另一个类调用 Emit:

self.userStartedCapture.emit()

连接是在 main.py 中完成的:

screenshot = Screenshot()
mainWindow = MainWindow()

mainWindow.userStartedCapture.connect(screenshot.on_userStartedCapture)

奇怪的是 self 适用于我的应用程序中的所有插槽/信号。但我无法找出为什么这个特定的失败。

对可能发生的事情有什么想法吗?

最佳答案

引发错误是因为发送信号时 selfNone。也就是说信号所连接的Screenshot实例已被删除(或正在删除中)。

关于python - PyQt5:使用槽/信号时 self 是 NoneType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21393861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com