def __init__(self,target) : QtGui.QWidget.__init__(self,None) self.setWindowIcon(QtGui.QIcon(get_image_directory() +"plot.png")) self.target=weakref.ref(target) vbl0=QtGui.QVBoxLayout(self) hbl = QtGui.QHBoxLayout() hbl.setMargin(2) hbl.setSpacing(6) hbl.setObjectName("hbl") gbx = QtGui.QGroupBox("Data sets") vbl3 = QtGui.QVBoxLayout() vbl3.setMargin(4) vbl3.setSpacing(6) vbl3.setObjectName("vbl3") gbx.setLayout(vbl3) hbl.addWidget(gbx) # plot list self.setlist=DragListWidget(self) self.setlist.setDataSource(self) self.setlist.setSelectionMode(3) self.setlist.setSizePolicy(QtGui.QSizePolicy.Preferred,QtGui.QSizePolicy.Expanding) self.setlist.setDragEnabled(True) self.setlist.setAcceptDrops(True) vbl3.addWidget(self.setlist) # none and all buttons for turning plot display on and off hbl6 = QtGui.QHBoxLayout() hbl.setObjectName("hbl6") vbl3.addLayout(hbl6) self.nonebut=QtGui.QPushButton(self) self.nonebut.setText("None") hbl6.addWidget(self.nonebut) self.allbut=QtGui.QPushButton(self) self.allbut.setText("All") hbl6.addWidget(self.allbut) # Slider for moving within the range self.showslide=ValSlider(self,(0,5),"Sel1:",0,30) self.showslide.setIntonly(1) vbl3.addWidget(self.showslide) # number and step for the slider hbl7 = QtGui.QHBoxLayout() hbl.setObjectName("hbl7") vbl3.addLayout(hbl7) self.nbox=ValBox(label="ns:",value=1) hbl7.addWidget(self.nbox) self.stepbox=ValBox(label="stp:",value=1) hbl7.addWidget(self.stepbox) vbl = QtGui.QVBoxLayout() vbl.setMargin(0) vbl.setSpacing(6) vbl.setObjectName("vbl") hbl.addLayout(vbl) hbl0=QtGui.QHBoxLayout() hbl0.setMargin(0) hbl0.setSpacing(6) vbl.addLayout(hbl0) self.saveb=QtGui.QPushButton(self) self.saveb.setText("Save") hbl0.addWidget(self.saveb) self.concatb=QtGui.QPushButton(self) self.concatb.setText("Concat") hbl0.addWidget(self.concatb) self.pdfb=QtGui.QPushButton(self) self.pdfb.setText("PDF") hbl0.addWidget(self.pdfb) hbl01=QtGui.QHBoxLayout() hbl01.setMargin(0) hbl01.setSpacing(6) vbl.addLayout(hbl01) self.histtype=QtGui.QComboBox(self) self.histtype.addItem("bar") #self.histtype.addItem("barstacked") #self.histtype.addItem("step") #self.histtype.addItem("stepfilled") hbl01.addWidget(self.histtype) self.orient=QtGui.QComboBox(self) self.orient.addItem("vertical") #self.orient.addItem("horizontal") hbl01.addWidget(self.orient) self.align=QtGui.QComboBox(self) self.align.addItem("center") self.align.addItem("edge") #self.align.addItem("right") hbl01.addWidget(self.align) hbl1 = QtGui.QHBoxLayout() hbl1.setMargin(0) hbl1.setSpacing(6) self.color=QtGui.QComboBox(self) self.color.addItem("black") self.color.addItem("blue") self.color.addItem("red") self.color.addItem("green") self.color.addItem("yellow") self.color.addItem("cyan") self.color.addItem("magenta") self.color.addItem("grey") hbl1.addWidget(self.color) vbl.addLayout(hbl1) hbl000 = QtGui.QHBoxLayout() hbl000.setMargin(0) hbl000.setSpacing(6) self.alpha=ValSlider(self,(0,1),"Alpha:",0,25) self.alpha.setValue(0.8) hbl000.addWidget(self.alpha) vbl.addLayout(hbl000) hbl001 = QtGui.QHBoxLayout() hbl001.setMargin(0) hbl001.setSpacing(6) self.rwidth=ValSlider(self,(0,1),"Width:",0,25) self.rwidth.setValue(0.8) hbl001.addWidget(self.rwidth) vbl.addLayout(hbl001) hbl2 = QtGui.QHBoxLayout() hbl2.setMargin(0) hbl2.setSpacing(6) vbl.addLayout(hbl2) hbl2 = QtGui.QHBoxLayout() hbl2.setMargin(0) hbl2.setSpacing(6) vbl.addLayout(hbl2) # per plot column selectors gl=QtGui.QGridLayout() gl.addWidget(QtGui.QLabel("Column:",self),0,0,Qt.AlignRight) self.slidecol=QtGui.QSpinBox(self) self.slidecol.setRange(0,1) self.slidecol.setValue(1) gl.addWidget(self.slidecol,0,1,Qt.AlignLeft) gl.addWidget(QtGui.QLabel("N Bins:",self),0,2,Qt.AlignRight) self.slidenbs=QtGui.QSpinBox(self) self.slidenbs.setRange(1,10000) self.slidenbs.setValue(10) gl.addWidget(self.slidenbs,0,3,Qt.AlignLeft) vbl.addLayout(gl) hbl02=QtGui.QHBoxLayout() hbl02.setMargin(0) hbl02.setSpacing(6) vbl.addLayout(hbl02) self.normed=QtGui.QCheckBox(self) self.normed.setText("Norm") hbl02.addWidget(self.normed) self.cumulative=QtGui.QCheckBox(self) self.cumulative.setText("Cumulative") hbl02.addWidget(self.cumulative) hbl03=QtGui.QHBoxLayout() hbl03.setMargin(0) hbl03.setSpacing(6) vbl.addLayout(hbl03) self.logtogy=QtGui.QCheckBox(self) self.logtogy.setText("Log Y") hbl03.addWidget(self.logtogy) self.stacked=QtGui.QCheckBox(self) self.stacked.setText("Stacked") hbl03.addWidget(self.stacked) self.wrescale=QtGui.QPushButton(self) self.wrescale.setText("Rescale") vbl.addWidget(self.wrescale) vbl0.addLayout(hbl) hbl2a=QtGui.QHBoxLayout() self.wl1=QtGui.QLabel("Min") self.wl1.setAlignment(Qt.AlignHCenter) hbl2a.addWidget(self.wl1) self.wl2=QtGui.QLabel("Max") self.wl2.setAlignment(Qt.AlignHCenter) hbl2a.addWidget(self.wl2) self.wl3=QtGui.QLabel("Min") self.wl3.setAlignment(Qt.AlignHCenter) hbl2a.addWidget(self.wl3) self.wl4=QtGui.QLabel("Max") self.wl4.setAlignment(Qt.AlignHCenter) hbl2a.addWidget(self.wl4) vbl0.addLayout(hbl2a) hbl2=QtGui.QHBoxLayout() self.wxmin=ValBox(label="X:") hbl2.addWidget(self.wxmin) self.wxmax=ValBox(label=" ") hbl2.addWidget(self.wxmax) self.wymin=ValBox(label="Y:") hbl2.addWidget(self.wymin) self.wymax=ValBox(label=" ") hbl2.addWidget(self.wymax) vbl0.addLayout(hbl2) # # hbl4 = QtGui.QHBoxLayout() # hbl4.addWidget(QtGui.QLabel("X Label:",self)) # self.xlabel=QtGui.QLineEdit(self) # hbl4.addWidget(self.xlabel) # vbl0.addLayout(hbl4) # # hbl5 = QtGui.QHBoxLayout() # hbl5.addWidget(QtGui.QLabel("Y Label:",self)) # self.ylabel=QtGui.QLineEdit(self) # hbl5.addWidget(self.ylabel) # vbl0.addLayout(hbl5) self.quiet=0 self.busy=0 self.showslide.valueChanged.connect(self.selSlide) self.allbut.clicked.connect(self.selAll) self.nonebut.clicked.connect(self.selNone) self.setlist.currentRowChanged[int].connect(self.newSet) self.setlist.itemChanged[QtGui.QListWidgetItem].connect(self.list_item_changed) self.saveb.clicked.connect(self.savePlot) self.pdfb.clicked.connect(self.savePdf) self.concatb.clicked.connect(self.saveConcatPlot) self.normed.stateChanged[int].connect(self.updPlotRepr) self.logtogy.stateChanged[int].connect(self.updPlotRepr) self.cumulative.stateChanged[int].connect(self.updPlotRepr) self.stacked.stateChanged[int].connect(self.updPlotRepr) self.slidecol.valueChanged[int].connect(self.newCols) self.slidenbs.valueChanged[int].connect(self.newNBins) self.rwidth.valueChanged.connect(self.updPlot) self.alpha.valueChanged.connect(self.updPlot) self.color.currentIndexChanged[QString].connect(self.updPlot) self.histtype.currentIndexChanged[QString].connect(self.updPlotRepr) self.orient.currentIndexChanged[QString].connect(self.updPlotRepr) self.align.currentIndexChanged[QString].connect(self.updPlotRepr) #QtCore.QObject.connect(self.xlabel,QtCore.SIGNAL("textChanged(QString)"),self.updPlot) #QtCore.QObject.connect(self.ylabel,QtCore.SIGNAL("textChanged(QString)"),self.updPlot) self.wxmin.valueChanged.connect(self.newLimits) self.wxmax.valueChanged.connect(self.newLimits) self.wymin.valueChanged.connect(self.newLimits) self.wymax.valueChanged.connect(self.newLimits) self.wrescale.clicked.connect(self.autoScale) self.newSet(0) self.datachange()
def __init__(self,target) : QtGui.QWidget.__init__(self,None) self.setWindowIcon(QtGui.QIcon(get_image_directory() +"plot.png")) self.target=weakref.ref(target) vbl0=QtGui.QVBoxLayout(self) hbl = QtGui.QHBoxLayout() hbl.setMargin(2) hbl.setSpacing(6) hbl.setObjectName("hbl") gbx = QtGui.QGroupBox("Data sets") vbl3 = QtGui.QVBoxLayout() vbl3.setMargin(4) vbl3.setSpacing(6) vbl3.setObjectName("vbl3") gbx.setLayout(vbl3) hbl.addWidget(gbx) # plot list self.setlist=DragListWidget(self) self.setlist.setDataSource(self) self.setlist.setSelectionMode(3) self.setlist.setSizePolicy(QtGui.QSizePolicy.Preferred,QtGui.QSizePolicy.Expanding) self.setlist.setDragEnabled(True) self.setlist.setAcceptDrops(True) vbl3.addWidget(self.setlist) # none and all buttons for turning plot display on and off hbl6 = QtGui.QHBoxLayout() hbl.setObjectName("hbl6") vbl3.addLayout(hbl6) self.nonebut=QtGui.QPushButton(self) self.nonebut.setText("None") hbl6.addWidget(self.nonebut) self.allbut=QtGui.QPushButton(self) self.allbut.setText("All") hbl6.addWidget(self.allbut) # Slider for moving within the range self.showslide=ValSlider(self,(0,5),"Sel1:",0,30) self.showslide.setIntonly(1) vbl3.addWidget(self.showslide) # number and step for the slider hbl7 = QtGui.QHBoxLayout() hbl.setObjectName("hbl7") vbl3.addLayout(hbl7) self.nbox=ValBox(label="ns:",value=1) hbl7.addWidget(self.nbox) self.stepbox=ValBox(label="stp:",value=1) hbl7.addWidget(self.stepbox) vbl = QtGui.QVBoxLayout() vbl.setMargin(0) vbl.setSpacing(6) vbl.setObjectName("vbl") hbl.addLayout(vbl) hbl0=QtGui.QHBoxLayout() hbl0.setMargin(0) hbl0.setSpacing(6) vbl.addLayout(hbl0) self.saveb=QtGui.QPushButton(self) self.saveb.setText("Save") hbl0.addWidget(self.saveb) self.concatb=QtGui.QPushButton(self) self.concatb.setText("Concat") hbl0.addWidget(self.concatb) self.pdfb=QtGui.QPushButton(self) self.pdfb.setText("PDF") hbl0.addWidget(self.pdfb) hbl01=QtGui.QHBoxLayout() hbl01.setMargin(0) hbl01.setSpacing(6) vbl.addLayout(hbl01) self.histtype=QtGui.QComboBox(self) self.histtype.addItem("bar") #self.histtype.addItem("barstacked") #self.histtype.addItem("step") #self.histtype.addItem("stepfilled") hbl01.addWidget(self.histtype) self.orient=QtGui.QComboBox(self) self.orient.addItem("vertical") #self.orient.addItem("horizontal") hbl01.addWidget(self.orient) self.align=QtGui.QComboBox(self) self.align.addItem("center") self.align.addItem("edge") #self.align.addItem("right") hbl01.addWidget(self.align) hbl1 = QtGui.QHBoxLayout() hbl1.setMargin(0) hbl1.setSpacing(6) self.color=QtGui.QComboBox(self) self.color.addItem("black") self.color.addItem("blue") self.color.addItem("red") self.color.addItem("green") self.color.addItem("yellow") self.color.addItem("cyan") self.color.addItem("magenta") self.color.addItem("grey") hbl1.addWidget(self.color) vbl.addLayout(hbl1) hbl000 = QtGui.QHBoxLayout() hbl000.setMargin(0) hbl000.setSpacing(6) self.alpha=ValSlider(self,(0,1),"Alpha:",0,25) self.alpha.setValue(0.8) hbl000.addWidget(self.alpha) vbl.addLayout(hbl000) hbl001 = QtGui.QHBoxLayout() hbl001.setMargin(0) hbl001.setSpacing(6) self.rwidth=ValSlider(self,(0,1),"Width:",0,25) self.rwidth.setValue(0.8) hbl001.addWidget(self.rwidth) vbl.addLayout(hbl001) hbl2 = QtGui.QHBoxLayout() hbl2.setMargin(0) hbl2.setSpacing(6) vbl.addLayout(hbl2) hbl2 = QtGui.QHBoxLayout() hbl2.setMargin(0) hbl2.setSpacing(6) vbl.addLayout(hbl2) # per plot column selectors gl=QtGui.QGridLayout() gl.addWidget(QtGui.QLabel("Column:",self),0,0,Qt.AlignRight) self.slidecol=QtGui.QSpinBox(self) self.slidecol.setRange(0,1) self.slidecol.setValue(1) gl.addWidget(self.slidecol,0,1,Qt.AlignLeft) gl.addWidget(QtGui.QLabel("N Bins:",self),0,2,Qt.AlignRight) self.slidenbs=QtGui.QSpinBox(self) self.slidenbs.setRange(1,10000) self.slidenbs.setValue(10) gl.addWidget(self.slidenbs,0,3,Qt.AlignLeft) vbl.addLayout(gl) hbl02=QtGui.QHBoxLayout() hbl02.setMargin(0) hbl02.setSpacing(6) vbl.addLayout(hbl02) self.normed=QtGui.QCheckBox(self) self.normed.setText("Norm") hbl02.addWidget(self.normed) self.cumulative=QtGui.QCheckBox(self) self.cumulative.setText("Cumulative") hbl02.addWidget(self.cumulative) hbl03=QtGui.QHBoxLayout() hbl03.setMargin(0) hbl03.setSpacing(6) vbl.addLayout(hbl03) self.logtogy=QtGui.QCheckBox(self) self.logtogy.setText("Log Y") hbl03.addWidget(self.logtogy) self.stacked=QtGui.QCheckBox(self) self.stacked.setText("Stacked") hbl03.addWidget(self.stacked) self.wrescale=QtGui.QPushButton(self) self.wrescale.setText("Rescale") vbl.addWidget(self.wrescale) vbl0.addLayout(hbl) hbl2a=QtGui.QHBoxLayout() self.wl1=QtGui.QLabel("Min") self.wl1.setAlignment(Qt.AlignHCenter) hbl2a.addWidget(self.wl1) self.wl2=QtGui.QLabel("Max") self.wl2.setAlignment(Qt.AlignHCenter) hbl2a.addWidget(self.wl2) self.wl3=QtGui.QLabel("Min") self.wl3.setAlignment(Qt.AlignHCenter) hbl2a.addWidget(self.wl3) self.wl4=QtGui.QLabel("Max") self.wl4.setAlignment(Qt.AlignHCenter) hbl2a.addWidget(self.wl4) vbl0.addLayout(hbl2a) hbl2=QtGui.QHBoxLayout() self.wxmin=ValBox(label="X:") hbl2.addWidget(self.wxmin) self.wxmax=ValBox(label=" ") hbl2.addWidget(self.wxmax) self.wymin=ValBox(label="Y:") hbl2.addWidget(self.wymin) self.wymax=ValBox(label=" ") hbl2.addWidget(self.wymax) vbl0.addLayout(hbl2) # # hbl4 = QtGui.QHBoxLayout() # hbl4.addWidget(QtGui.QLabel("X Label:",self)) # self.xlabel=QtGui.QLineEdit(self) # hbl4.addWidget(self.xlabel) # vbl0.addLayout(hbl4) # # hbl5 = QtGui.QHBoxLayout() # hbl5.addWidget(QtGui.QLabel("Y Label:",self)) # self.ylabel=QtGui.QLineEdit(self) # hbl5.addWidget(self.ylabel) # vbl0.addLayout(hbl5) self.quiet=0 self.busy=0 QtCore.QObject.connect(self.showslide, QtCore.SIGNAL("valueChanged"), self.selSlide) QtCore.QObject.connect(self.allbut, QtCore.SIGNAL("clicked()"), self.selAll) QtCore.QObject.connect(self.nonebut, QtCore.SIGNAL("clicked()"), self.selNone) QtCore.QObject.connect(self.setlist,QtCore.SIGNAL("currentRowChanged(int)"),self.newSet) QtCore.QObject.connect(self.setlist,QtCore.SIGNAL("itemChanged(QListWidgetItem*)"),self.list_item_changed) QtCore.QObject.connect(self.saveb,QtCore.SIGNAL("clicked()"),self.savePlot) QtCore.QObject.connect(self.pdfb,QtCore.SIGNAL("clicked()"),self.savePdf) QtCore.QObject.connect(self.concatb,QtCore.SIGNAL("clicked()"),self.saveConcatPlot) QtCore.QObject.connect(self.normed,QtCore.SIGNAL("stateChanged(int)"),self.updPlotRepr) QtCore.QObject.connect(self.logtogy,QtCore.SIGNAL("stateChanged(int)"),self.updPlotRepr) QtCore.QObject.connect(self.cumulative,QtCore.SIGNAL("stateChanged(int)"),self.updPlotRepr) QtCore.QObject.connect(self.stacked,QtCore.SIGNAL("stateChanged(int)"),self.updPlotRepr) QtCore.QObject.connect(self.slidecol, QtCore.SIGNAL("valueChanged(int)"), self.newCols) QtCore.QObject.connect(self.slidenbs, QtCore.SIGNAL("valueChanged(int)"), self.newNBins) QtCore.QObject.connect(self.rwidth,QtCore.SIGNAL("valueChanged"),self.updPlot) QtCore.QObject.connect(self.alpha,QtCore.SIGNAL("valueChanged"),self.updPlot) QtCore.QObject.connect(self.color,QtCore.SIGNAL("currentIndexChanged(QString)"),self.updPlot) QtCore.QObject.connect(self.histtype,QtCore.SIGNAL("currentIndexChanged(QString)"),self.updPlotRepr) QtCore.QObject.connect(self.orient,QtCore.SIGNAL("currentIndexChanged(QString)"),self.updPlotRepr) QtCore.QObject.connect(self.align,QtCore.SIGNAL("currentIndexChanged(QString)"),self.updPlotRepr) #QtCore.QObject.connect(self.xlabel,QtCore.SIGNAL("textChanged(QString)"),self.updPlot) #QtCore.QObject.connect(self.ylabel,QtCore.SIGNAL("textChanged(QString)"),self.updPlot) QtCore.QObject.connect(self.wxmin,QtCore.SIGNAL("valueChanged"),self.newLimits) QtCore.QObject.connect(self.wxmax,QtCore.SIGNAL("valueChanged"),self.newLimits) QtCore.QObject.connect(self.wymin,QtCore.SIGNAL("valueChanged"),self.newLimits) QtCore.QObject.connect(self.wymax,QtCore.SIGNAL("valueChanged"),self.newLimits) QtCore.QObject.connect(self.wrescale,QtCore.SIGNAL("clicked()"),self.autoScale) self.newSet(0) self.datachange()