def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.layout = QtGui.QVBoxLayout(self) self.comboWidget = AddDelComboWidget(self) self.layout.addWidget(self.comboWidget) self.singleDurationWidget = SingleDurationWidget(self) self.layout.addWidget(self.singleDurationWidget) self.addComandContributer(self.singleDurationWidget) self.comboWidget.objectSelected.connect(self.singleDurationWidget.setDuration)
class DurationsWidget(QtGui.QWidget): commandIssued = QtCore.pyqtSignal(QtGui.QUndoCommand) criticalCommandIssued = QtCore.pyqtSignal() def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.layout = QtGui.QVBoxLayout(self) self.comboWidget = AddDelComboWidget(self) self.layout.addWidget(self.comboWidget) self.singleDurationWidget = SingleDurationWidget(self) self.layout.addWidget(self.singleDurationWidget) self.addComandContributer(self.singleDurationWidget) self.comboWidget.objectSelected.connect(self.singleDurationWidget.setDuration) def setPopulationModel(self, model): self.singleDurationWidget.setPopulationModel(model) def setInstitution(self, institution): m = DurationsModel(institution) self._set_model(m) def _set_model(self, model): self.comboWidget.setModel(model) if len(model.durations) > 0: self.singleDurationWidget.setDuration(model.durations[0]) self.addComandContributer(model) @QtCore.pyqtSlot(QtGui.QUndoCommand) def emitCommand(self, command): self.commandIssued.emit(command) @QtCore.pyqtSlot() def emitCriticalCommand(self): self.criticalCommandIssued.emit() def addComandContributer(self, otherModel): otherModel.commandIssued.connect(self.emitCommand) otherModel.criticalCommandIssued.connect(self.emitCriticalCommand)