def __init__(self, scene, x, y, caption, answers, done_cb, parent=None): self.w = 0 self.h = 0 super(DialogItem, self).__init__(scene, x, y, parent=parent) self.sp = self.m2pix(0.01) self.done_cb = done_cb self.fixed = False self.desc = DescItem(scene, 0, 0, self) self.desc.set_content(caption) self.items = [] self.w = (len(answers) + 1) * self.sp for answer in answers: btn = ButtonItem(self.scene(), 0, 0, answer, self, self.answer_cb) self.items.append(btn) self.w += btn._width() y = self.sp self._place_childs_horizontally(y, self.sp, [self.desc]) y += self.desc._height() + self.sp self._place_childs_horizontally(y, self.sp, self.items) y += self.items[0]._height() y += self.sp self.h = y self.update() self.setZValue(300)