88 lines
3.3 KiB
Python
88 lines
3.3 KiB
Python
|
from PyQt4.QtCore import *
|
||
|
from PyQt4.QtGui import *
|
||
|
import PeakGroupBox
|
||
|
|
||
|
|
||
|
class PeakWidget(QGroupBox):
|
||
|
changedTable = pyqtSignal()
|
||
|
def __init__(self, parent=None):
|
||
|
QGroupBox.__init__(self)
|
||
|
super(PeakWidget, self).__init__(parent)
|
||
|
self.ui = PeakGroupBox.Ui_PeakGroupBox()
|
||
|
self.ui.setupUi(self)
|
||
|
self.lineEdits = [self.ui.lineEdit_1,
|
||
|
self.ui.lineEdit_2,
|
||
|
self.ui.lineEdit_3,
|
||
|
self.ui.lineEdit_4]
|
||
|
self.fixedCheckBoxes = [self.ui.checkBox_1,
|
||
|
self.ui.checkBox_2,
|
||
|
self.ui.checkBox_3,
|
||
|
self.ui.checkBox_4]
|
||
|
for le in self.lineEdits:
|
||
|
le.editingFinished.connect(self.changedTable.emit)
|
||
|
self.signalMapper = QSignalMapper(self)
|
||
|
for i, button in enumerate([self.ui.pushButton_1,
|
||
|
self.ui.pushButton_2,
|
||
|
self.ui.pushButton_3,
|
||
|
self.ui.pushButton_4,
|
||
|
self.ui.pushButton_5,
|
||
|
self.ui.pushButton_6,
|
||
|
self.ui.pushButton_7,
|
||
|
self.ui.pushButton_8,
|
||
|
]):
|
||
|
self.signalMapper.setMapping(button,i)
|
||
|
button.clicked.connect(self.signalMapper.map)
|
||
|
self.signalMapper.mapped.connect(self.changeValues)
|
||
|
|
||
|
def changeValues(self, num):
|
||
|
logstep = 1.29154967 # 10 log even steps per decade
|
||
|
linstep = 0.05
|
||
|
# 0-3 down/up for d_eps and tau, respectively
|
||
|
# 4-7 down, up for a, b
|
||
|
if num == 0:
|
||
|
self.ui.lineEdit_1.setText("%.2e"%(self.ui.lineEdit_1.text().toDouble()[0]/logstep))
|
||
|
if num == 1:
|
||
|
self.ui.lineEdit_1.setText("%.2e"%(self.ui.lineEdit_1.text().toDouble()[0]*logstep))
|
||
|
if num == 2:
|
||
|
self.ui.lineEdit_2.setText("%.2e"%(self.ui.lineEdit_2.text().toDouble()[0]/logstep))
|
||
|
if num == 3:
|
||
|
self.ui.lineEdit_2.setText("%.2e"%(self.ui.lineEdit_2.text().toDouble()[0]*logstep))
|
||
|
if num == 4:
|
||
|
self.ui.lineEdit_3.setText("%.2e"%(self.ui.lineEdit_3.text().toDouble()[0]-linstep))
|
||
|
if num == 5:
|
||
|
self.ui.lineEdit_3.setText("%.2e"%(self.ui.lineEdit_3.text().toDouble()[0]+linstep))
|
||
|
if num == 6:
|
||
|
self.ui.lineEdit_4.setText("%.2e"%(self.ui.lineEdit_4.text().toDouble()[0]-linstep))
|
||
|
if num == 7:
|
||
|
self.ui.lineEdit_4.setText("%.2e"%(self.ui.lineEdit_4.text().toDouble()[0]+linstep))
|
||
|
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):
|
||
|
r,g,b = color
|
||
|
palette = self.palette()
|
||
|
palette.setColor(QPalette.Foreground, QColor(r,g,b))
|
||
|
self.setPalette(palette)
|
||
|
|
||
|
def peakParameter(self):
|
||
|
tmp = [i.text().toDouble()[0] # selects the number, ignores the status
|
||
|
for i in self.lineEdits ]
|
||
|
print "peakParams:",tmp
|
||
|
return tmp
|
||
|
|
||
|
def update(self):
|
||
|
self.changedTable.emit()
|
||
|
|
||
|
def updateTable(self, *args):
|
||
|
print "updateTable", args
|
||
|
for i,arg in enumerate(args):
|
||
|
self.lineEdits[i].setText("%g"%(args[i]))
|
||
|
|