from PyQt4.QtCore import * from PyQt4.QtGui import * import PeakGroupBox from CustomWidgets import LogFSpinBox class PeakWidget(QGroupBox): changedTable = pyqtSignal() def __init__(self, parent=None): QGroupBox.__init__(self) super(PeakWidget, self).__init__(parent) self.ui = PeakGroupBox.Ui_PeakGroupBox() # replace eps and tau with LogFSpinBox self.ui.setupUi(self) self.ui.doubleSpinBox_1.setParent(None) self.ui.doubleSpinBox_1 = LogFSpinBox(self) self.ui.gridLayout.addWidget(self.ui.doubleSpinBox_1,1,1) self.ui.doubleSpinBox_2.setParent(None) self.ui.doubleSpinBox_2 = LogFSpinBox(self) self.ui.gridLayout.addWidget(self.ui.doubleSpinBox_2,2,1) self.inputs = [ self.ui.doubleSpinBox_1, self.ui.doubleSpinBox_2, self.ui.doubleSpinBox_3, self.ui.doubleSpinBox_4 ] for dsb in self.inputs: dsb.valueChanged.connect(self.changeValues) self.fixedCheckBoxes = [self.ui.checkBox_1, self.ui.checkBox_2, self.ui.checkBox_3, self.ui.checkBox_4] def changeValues(self): self.changedTable.emit() def fixedParameter(self): return [0 if cb.isChecked() else 1 for cb in self.fixedCheckBoxes] def setId(self, id): self.id = id self.setTitle("Peak %i" % id) def setColor(self, color): palette = self.palette() palette.setColor(QPalette.Foreground, color) self.setPalette(palette) def peakParameter(self): tmp = [i.value() # selects the number, ignores the status for i in self.inputs] return tmp def update(self): self.changedTable.emit() def updateTable(self, *args): #print "updateTable", args for i, arg in enumerate(args): self.inputs[i].setValue(args[i])