def updateQuestions(self): self.qListWidget.disconnect() self.qListWidget.clear() for q in data.questions: i = QListWidgetItem(data.questions[q], self.qListWidget) i.setFlags(i.flags() | 2) i.qId = q self.selectAgent(0, 0) self.qListWidget.itemChanged.connect(self.updateQuestion)
def selectAgent(self, i, previousItem): i = self.treeWidget.currentItem() if i: self.ansListWidget.clear() if i.aId: self.ansListWidget.disconnect() ans = data.agents[i.aId].all_answers() for a in ans: li = QListWidgetItem( data.questions[a] + " (" + data.agents[data.agents[i.aId].answer_owner(a)].name + ")", self.ansListWidget) li.setCheckState(1 + ans[a]) li.setFlags(li.flags() | 256) # tristate li.qId = a li.aId = data.agents[i.aId].answer_owner(a) #if a not in data.agents[i.aId].answers.keys(): # li.setFlags(li.flags()^16) # Si la réponse concerne un agent aïeul, on empêche les modifs self.ansListWidget.itemChanged.connect(self.updateAnswer)
def nextQuestion(self): self.listWidget.disconnect() try: a = self.aList[self.currentQ] i = QListWidgetItem(self.listWidget) i.qId = self.qList[self.currentQ][0] i.qN = self.currentQ i.setText(self.qList[self.currentQ][1]) i.setCheckState(1 + a.a) i.setFlags(i.flags() | 256) # tristate except: pass self.currentQ += 1 try: self.label_question.setText(self.qList[self.currentQ][1]) except: self.label_question.setText("Plus aucune question") self.listWidget.itemChanged.connect(self.updateAnswer) self.updateAgents()