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)