python – PyQt5连接不起作用:在此上下文中无法将项转换为PyQt5.QtCore.QObject

python – PyQt5连接不起作用:在此上下文中无法将项转换为PyQt5.QtCore.QObject,第1张

概述我正在尝试连接来自创建对象的信号并且收到错误.这是我的代码的简化版本: class OverviewWindow(QMainWindow): def __init__(self, projectClusters, users, contributorDict, userLastRevPerProj): QMainWindow.__init__(self) # 我正在尝试连接来自创建对象的信号并且收到错误.这是我的代码的简化版本:

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,diameter,text,isUserNode):        super(NodeItem,self).__init__()        # Code...    def mouseDoubleClickEvent(self,event):        self.nodeDoubleClicked.emit(self.texts)

当试图运行它时,它给我这个错误:

line 84,in createuserNodesnewItem.nodeDoubleClicked[str].connect(self.dc)TypeError: NodeItem cannot be converted to PyQt5.QtCore.QObject in this context

我不知道这意味着什么或如何解决它.

解决方法 QGraphicsItem不从QObject继承,因此无法从QGraphicsItem的实例发出信号.您可以通过继承QGraphicsObject而不是QGraphicsItem: http://doc.qt.io/qt-5/qgraphicsobject.html来解决此问题. 总结

以上是内存溢出为你收集整理的python – PyQt5连接不起作用:在此上下文中无法将项转换为PyQt5.QtCore.QObject全部内容,希望文章能够帮你解决python – PyQt5连接不起作用:在此上下文中无法将项转换为PyQt5.QtCore.QObject所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1193623.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存