qdsfit/PeakWidget.py

66 lines
2.0 KiB
Python

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])