示例#1
0
	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()
示例#2
0
文件: emhist.py 项目: cryoem/eman2
	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()