Esempio n. 1
0
    def __init__(self, name, surname, birth, death, mom, dad, photo, scene):
        self.circle = callbackEllipse(-40, -40, 80, 80)

        self.name = name
        self.circle.name = name
        self.surname = surname
        self.circle.surname = surname
        humans[name + " " + surname] = self
        self.birth = birth
        self.circle.birth = birth
        self.death = death
        self.circle.death = death
        self.circle.mom = mom
        self.circle.dad = dad
        self.photo = photo
        self.family = []
        self.edges = []

        self.scene = scene

        self.circle.setFlag(QGraphicsItem.isWidget(self.circle))
        self.circle.setFlag(QGraphicsItem.ItemIsMovable)
        self.circle.setToolTip(self.name + " " + self.surname)


        if mom != "" and mom in humans and mom != name + " " + surname:
            self.family.append(humans[mom])
            humans[mom].family.append(self)
            line = QGraphicsLineItem(QLineF(self.circle.pos(), humans[mom].circle.pos()))
            line.setFlag(QGraphicsLineItem.ItemIsMovable)
            self.scene.addItem(line)
            self.edges.append(line)
            humans[mom].edges.append(line)
            line.setParentItem(self.circle)


        if dad != "" and dad in humans and dad != name + " " + surname:
            self.family.append(humans[dad])
            humans[dad].family.append(self)
            line = QGraphicsLineItem(QLineF(self.circle.pos(), humans[dad].circle.pos()))
            line.setFlag(QGraphicsLineItem.ItemIsMovable)
            self.scene.addItem(line)
            self.edges.append(line)
            humans[dad].edges.append(line)

        self.scene.addItem(self.circle)