QGraphicsItem多类继承无效

时间:2019-01-13 01:48:45

标签: python

为什么这种多类继承无效?看来我做错了什么。我正在尝试创建一个具有UID属性的基类,并在更改该属性时调用self.update强制触发图形项的paint事件。使用基类的原因是,这样我就可以在最终将要创建的所有其他自定义GraphicItem中实现此属性。并非全部都是TextItems。

import os, sys, uuid
from Qt import QtWidgets, QtGui, QtCore

class AbstractNodeItem(QtWidgets.QGraphicsItem):
    def __init__(self, parent=None):
        super(AbstractNodeItem, self).__init__(parent)
        self.setFlags(self.ItemIsSelectable | self.ItemIsMovable)
        self.setZValue(0)

        # private
        self.m_uid = uuid.uuid4().hex

    # Getters/Setters
    def getUid(self):
        return self.m_uid

    def setUid(self, value=''):
        self.m_uid = value


class StickyNoteNodeItem(AbstractNodeItem, QtWidgets.QGraphicsTextItem):
    def __init__(self, parent=None):
        super(StickyNoteNodeItem, self).__init__(parent)


def printProperties(item):
    print '>>>>>', item.getUid()


a = AbstractNodeItem()
b = StickyNoteNodeItem()
printProperties(a)
printProperties(b)

0 个答案:

没有答案