def display_question(self, question, answers, selected_index = None, correct = None): self._init_scene() x = 50 y = 25 item = QGraphicsSimpleTextItem(question) item.setBrush(self.TEXT_COLOR) item.setFont(self.BOLDISH) item.setX(x) item.setY(y) self.qtscene.addItem(item) self.references.append(item) y += 75 for index, answer in enumerate(answers): index += 1 item = QGraphicsSimpleTextItem("%s) %s" % (index, answer)) item.setBrush(self.TEXT_COLOR) item.setFont(self.NORMALISH) item.setX(x) item.setY(y) item.setAcceptHoverEvents(True) self.qtscene.addItem(item) self.references.append(item) #TODO: do not register click but do show check or not if not selected_index: item.hoverEnterEvent = partial(self.on_hover_answer, item) item.hoverLeaveEvent = partial(self.on_unhover_answer, item) item.mousePressEvent = partial(self.on_click_answer, index) elif selected_index == index: if correct: item = QGraphicsSimpleTextItem(u"\u2713") item.setBrush(QBrush(QColor(0,150,0))) item.setX(0) else: item = QGraphicsSimpleTextItem("X") item.setBrush(QBrush(QColor(255,0,0))) item.setX(3) item.setFont(self.BOLDISH) item.setY(y) self.qtscene.addItem(item) self.references.append(item) y += 50 return x, y