def changed(self): self.disconnectAll() # self.scenario.genNbEnf() self.populate() self.action_compute.setEnabled(True) self.emit(SIGNAL('changed()')) self.connectAll()
def rmvPerson(self, noi=None): if noi is None: noi = self.nbRow() - 1 self.scenario.rmvIndiv(noi) self.rmvRow() self.add_btn.setEnabled(True) self.emit(SIGNAL('compoChanged()'))
def resetScenario(self): ''' Resets scenario ''' while self.nbRow() > 1: self.rmvPerson() self.simulation.reset_scenario self.emit(SIGNAL('compoChanged()'))
def __init__(self, scenario, parent=None): super(Logement, self).__init__(parent) self.setupUi(self) self.parent = parent self.scenario = scenario self.spinCP.setValue(scenario.menage[0]['code_postal']) self.spinLoyer.setValue(scenario.menage[0]['loyer']) self.comboSo.setCurrentIndex(scenario.menage[0]['so'] - 1) # -1 because 0 is "non renseigné" self.spinTH.setValue( scenario.menage[0]['zthabm']) # -1 because 0 is "non renseigné" def update_ville(code): commune = get_zone(code) if commune is not None: self.bbox.button(QDialogButtonBox.Ok).setEnabled(True) else: commune = ("Ce code postal n'est pas reconnu", '2') self.bbox.button(QDialogButtonBox.Ok).setEnabled(False) self.commune.setText(commune[0]) self.spinZone.setValue(int(commune[1])) update_ville(self.spinCP.value()) self.connect(self.spinCP, SIGNAL('valueChanged(int)'), update_ville) def update_th(value): self.spinTH.setValue(int(value)) self.connect(self.spinTH, SIGNAL('valueChanged(int)'), update_th) def so_changed(value): if value in (0, 1): self.spinLoyer.setValue(0) self.spinLoyer.setEnabled(False) else: self.spinLoyer.setValue(500) self.spinLoyer.setEnabled(True) self.connect(self.comboSo, SIGNAL('currentIndexChanged(int)'), so_changed) self.connect(self.bbox, SIGNAL("accepted()"), SLOT("accept()")) self.connect(self.bbox, SIGNAL("rejected()"), SLOT("reject()"))
def quifamChanged(self, newFam): if newFam == 'parent 1': qui = 'chef' elif newFam == 'parent 2': qui = 'part' elif newFam == 'enfant': qui = 'enf' senderNoi = int(self.sender().objectName()[3]) self.scenario.modifyFam(senderNoi, newQuifam=qui) self.emit(SIGNAL('compoChanged()'))
def set_x_axis(self): ''' Sets the varying variable of the scenario ''' widget = self.x_axis_box if isinstance(widget, QComboBox): data = widget.itemData(widget.currentIndex()) x_axis = unicode(data) self.scenario.x_axis = x_axis self.set_option('x_axis', x_axis) self.emit(SIGNAL('compoChanged()'))
def load(self): cas_type_dir = self.get_option('import_dir') fileName = QFileDialog.getOpenFileName(self, _("Open a test case"), cas_type_dir, u"Cas type OpenFisca (*.ofct)") if not fileName == '': n = len(self.scenario.indiv) try: self.scenario.openFile(fileName) while n < self.nbRow(): self.addRow() n += 1 while n > self.nbRow(): self.rmvRow() n -= 1 self.emit(SIGNAL('compoChanged()')) self.emit(SIGNAL("ok()")) except Exception, e: QMessageBox.critical( self, "Erreur", u"Erreur lors de l'ouverture du fichier : le fichier n'est pas reconnu : \n " + e, QMessageBox.Ok, QMessageBox.NoButton)
def openDeclaration(self): """ Open the declaration widget """ noi = int(self.sender().objectName()[3]) self.scenario.genNbEnf() msg = self.scenario.check_consistency() if msg: QMessageBox.critical(self, u"Ménage non valide", msg, QMessageBox.Ok, QMessageBox.NoButton) return False self._declaration = Declaration(self, noi) self._declaration.exec_() self.emit(SIGNAL('compoChanged()'))
def set_maxrev(self): ''' Sets the varying variable of the scenario ''' widget = self.maxrev_box if isinstance(widget, QSpinBox) or isinstance(widget, QDoubleSpinBox): maxrev = widget.value() print "in set_maxrev :", maxrev self.scenario.maxrev = maxrev self.set_option('maxrev', maxrev) self.maxrev = maxrev self.emit(SIGNAL('compoChanged()'))
def addPerson(self): noi = self.nbRow() self.addRow() if noi == 1: self.scenario.addIndiv(noi, birth=date(1975, 1, 1), quifoy='conj', quifam='part') else: self.scenario.addIndiv(noi, birth=date(2000, 1, 1), quifoy='pac', quifam='enf') self.emit(SIGNAL('compoChanged()'))
def addPref(self): noi = 0 self._listPerson.append([ QLabel('%d' % (noi + 1), self), QDateEdit(self), QComboBox(self), QComboBox(self), QPushButton(self), QComboBox(self), QComboBox(self) ]) temp = self._listPerson[0] temp[S.birth].setDisplayFormat( QApplication.translate("Page01", "dd MMM yyyy", None, QApplication.UnicodeUTF8)) temp[S.birth].setObjectName('Bir%d' % noi) temp[S.birth].setCurrentSection(QDateEdit.YearSection) temp[S.decpos].setObjectName('Dec%d' % noi) temp[S.decpos].addItems(['vous']) temp[S.decpos].setEnabled(False) temp[S.decnum].setObjectName('Foy%d' % noi) temp[S.decnum].setEnabled(False) temp[S.fampos].addItems(['parent 1']) temp[S.fampos].setObjectName('Fam%d' % noi) temp[S.fampos].setEnabled(False) temp[S.famnum].setObjectName('Fam%d' % noi) temp[S.famnum].setEnabled(False) temp[S.decbtn].setObjectName('But%d' % noi) for i in xrange(7): self.gridLayout.addWidget(temp[i], noi + 2, i) self.gridLayout.setAlignment(temp[i], Qt.AlignCenter) self.emit(SIGNAL('compoChanged()'))
def connectAll(self): for person in self._listPerson: QObject.connect(person[S.birth], SIGNAL('dateChanged(QDate)'), self.birthChanged) QObject.connect(person[S.decpos], SIGNAL('currentIndexChanged(QString)'), self.quifoyChanged) QObject.connect(person[S.decnum], SIGNAL('currentIndexChanged(int)'), self.foyerChanged) QObject.connect(person[S.fampos], SIGNAL('currentIndexChanged(QString)'), self.quifamChanged) QObject.connect(person[S.famnum], SIGNAL('currentIndexChanged(int)'), self.familleChanged) QObject.connect(person[S.decbtn], SIGNAL('clicked()'), self.openDeclaration)
def calculated(self): self.emit(SIGNAL('calculated()'))
def birthChanged(self, date): senderNoi = int(self.sender().objectName()[3]) self.scenario.indiv[senderNoi].update({'birth': date.toPyDate()}) self.emit(SIGNAL('compoChanged()'))
def openInfoComp(self): self._infocomp = InfoComp(self.scenario, self) self._infocomp.exec_() self.emit(SIGNAL('compoChanged()'))
def openLogement(self): self._logement = Logement(self.scenario, self) self._logement.exec_() self.emit(SIGNAL('compoChanged()'))
def foyerChanged(self): sender = self.sender() noi = int(sender.objectName()[3]) newfoyer = int(sender.currentText()[-1]) - 1 self.scenario.modify(noi, newFoyer=newfoyer) self.emit(SIGNAL('compoChanged()'))
def quifoyChanged(self, newQuifoy): senderNoi = int(self.sender().objectName()[3]) self.scenario.modify(senderNoi, newQuifoy=newQuifoy) self.emit(SIGNAL('compoChanged()'))
def familleChanged(self): sender = self.sender() noi = int(sender.objectName()[3]) newfamille = int(sender.currentText()[-1]) - 1 self.scenario.modifyFam(noi, newFamille=newfamille) self.emit(SIGNAL('compoChanged()'))
def __init__(self, scenario=None, parent=None): super(CompositionWidget, self).__init__(parent) self.setupUi(self) if parent is not None: self.parent = parent self.setLayout(self.verticalLayout) # Initialize xaxes x_axis = self.get_option('x_axis') axes_names = [] for col, axe in self.XAXIS_PROPERTIES.iteritems(): self.x_axis_box.addItem( col, to_qvariant(axe["name"]) ) # convert col to label by using tax_benefit_system # self.x_axis_box.addItem(axe.label, to_qvariant(axe.name)) axes_names.append(axe["name"]) self.x_axis_box.setCurrentIndex(axes_names.index(x_axis)) self.initialize_plugin() # Initialize maxrev # make it country dependant self.maxrev_box.setMinimum(0) self.maxrev_box.setMaximum(100000000) self.maxrev_box.setSingleStep(1000) self.maxrev_box.setSuffix(CURRENCY) maxrev = self.get_option('maxrev') self.maxrev_box.setValue(maxrev) self.maxrev = maxrev if scenario is not None: self.set_scenario(scenario) self.connect(self.open_btn, SIGNAL('clicked()'), self.load) self.connect(self.save_btn, SIGNAL('clicked()'), self.save) self.connect(self.add_btn, SIGNAL('clicked()'), self.addPerson) self.connect(self.rmv_btn, SIGNAL('clicked()'), self.rmvPerson) self.connect(self.lgt_btn, SIGNAL('clicked()'), self.openLogement) self.connect(self.inf_btn, SIGNAL('clicked()'), self.openInfoComp) self.connect(self.reset_btn, SIGNAL('clicked()'), self.resetScenario) self.connect(self.x_axis_box, SIGNAL('currentIndexChanged(int)'), self.set_x_axis) self.connect(self.maxrev_box, SIGNAL('valueChanged(int)'), self.set_maxrev) self.connect(self, SIGNAL('compoChanged()'), self.changed) self._listPerson = [] self.addPref() self.rmv_btn.setEnabled(False) self.emit(SIGNAL("ok()"))