Ich versuche, ein Signal von einem erstellten Objekt zu verbinden und erhalte einen Fehler. Hier ist eine vereinfachte Version von meinem Code:PyQt5-Verbindung funktioniert nicht: Element kann in diesem Kontext nicht in PyQt5.QtCore.QObject konvertiert werden
class OverviewWindow(QMainWindow):
def __init__(self, projectClusters, users, contributorDict, userLastRevPerProj):
QMainWindow.__init__(self)
# Code....
def createUserNodes(self):
userNodes = {}
nodeSpread = 50
yPos = -400
nodeSpan = nodeSpread + 100
width = (len(self.usersFilt) - 1) * nodeSpan
xPos = 0 - (width/2)
for user in self.usersFilt:
newItem = NodeItem(xPos, yPos, self.nodeDiameter, user, True)
newItem.nodeDoubleClicked.connect(self.dc)
userNodes[user] = newItem
self.graphicsScene.addItem(newItem)
xPos += nodeSpan
return userNodes
@pyqtSlot(str)
def dc(self, text):
print(text)
class NodeItem(QGraphicsItem):
nodeDoubleClicked = pyqtSignal(str)
def __init__(self, xPos, yPos, diameter, text, isUserNode):
super(NodeItem, self).__init__()
# Code...
def mouseDoubleClickEvent(self, event):
self.nodeDoubleClicked.emit(self.texts)
Beim Versuch, es führen Sie es mir diesen Fehler geben:
line 84, in createUserNodes
newItem.nodeDoubleClicked[str].connect(self.dc)
TypeError: NodeItem cannot be converted to PyQt5.QtCore.QObject in this context
Ich habe keine Ahnung, was das bedeutet oder wie man es beheben.
Ich habe ein ähnliches Problem, das Sie hatten, war aber nicht in der Lage, es mit super (NodeItem, self) .mouseDoubleClickEvent (Ereignis) zu lösen, könnten Sie Details Ihrer Lösung in einer Antwort bereitstellen? – sunyata