本文整理汇总了Python中PyMca.QtBlissGraph.QtBlissGraph类的典型用法代码示例。如果您正苦于以下问题:Python QtBlissGraph类的具体用法?Python QtBlissGraph怎么用?Python QtBlissGraph使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QtBlissGraph类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(self, *args):
QtBlissGraph.__init__(self, *args)
f = self.parent().font()
t = qwt.QwtText('')
t.setFont(f)
self.setAxisTitle(qwt.QwtPlot.xBottom, t)
self.setAxisTitle(qwt.QwtPlot.yLeft, t)
示例2: __init__
def __init__(self, parent, realtime_plot = False):
"""
Descript. :
"""
QWidget.__init__(self, parent)
self.axis_x_array = []
self.axis_y_array = []
self.realtime_plot = realtime_plot
self.pymca_graph = Graph(self)
self.pymca_graph.showGrid()
self.info_label = QLabel("", self)
self.info_label.setAlignment(Qt.AlignRight)
_main_vlayout = QVBoxLayout(self)
_main_vlayout.addWidget(self.pymca_graph)
_main_vlayout.addWidget(self.info_label)
_main_vlayout.setSpacing(2)
_main_vlayout.setContentsMargins(2, 2, 2, 2)
self.setSizePolicy(QSizePolicy.Expanding,
QSizePolicy.Expanding)
if qt_variant == 'PyQt5':
pass
else:
QObject.connect(self.pymca_graph,
SIGNAL("QtBlissGraphSignal"),
self.handle_graph_signal)
Qt4_widget_colors.set_widget_color(self, Qt4_widget_colors.WHITE)
示例3: __init__
def __init__(self, *args):
BlissWidget.__init__(self, *args)
self.defineSignal('newScan', ())
self.scanObject = None
self.xdata = []
self.ylable = ""
self.mylog = 0
self.isConnected = None
#self.canAddPoint = None
self.canAddPoint = True
self.addProperty('specVersion', 'string', '')
self.addProperty('backgroundColor', 'combo', ('white', 'default'), 'white')
self.addProperty('graphColor', 'combo', ('white', 'default'), 'white')
self.lblTitle = QLabel(self)
self.graphPanel = QFrame(self)
buttonBox = QHBox(self)
#self.cmdZoomIn = QToolButton(buttonBox)
#self.cmdZoomOut = QToolButton(buttonBox)
self.lblPosition = QLabel(buttonBox)
self.graph = QtBlissGraph(self.graphPanel)
QObject.connect(self.graph, PYSIGNAL('QtBlissGraphSignal'), self.handleBlissGraphSignal)
QObject.disconnect(self.graph, SIGNAL('plotMousePressed(const QMouseEvent&)'), self.graph.onMousePressed)
QObject.disconnect(self.graph, SIGNAL('plotMouseReleased(const QMouseEvent&)'), self.graph.onMouseReleased)
#QObject.connect(self.cmdZoomIn, SIGNAL('clicked()'), self.cmdZoomInClicked)
#QObject.connect(self.cmdZoomOut, SIGNAL('clicked()'), self.cmdZoomOutClicked)
#self.cmdZoomIn.setIconSet(QIconSet(Icons.load("zoomin")))
#self.cmdZoomOut.setIconSet(QIconSet(Icons.load("zoomout")))
#self.cmdZoomIn.setToggleButton(True)
#self.cmdZoomOut.setToggleButton(True)
#self.cmdZoomIn.setUsesTextLabel(False)
#self.cmdZoomOut.setUsesTextLabel(False)
self.graph.canvas().setMouseTracking(True)
self.graph.enableLegend(False)
self.graph.enableZoom(False)
self.graph.setAutoLegend(False)
self.lblPosition.setAlignment(Qt.AlignRight)
self.lblTitle.setAlignment(Qt.AlignHCenter)
self.lblTitle.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.lblPosition.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
buttonBox.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
QVBoxLayout(self.graphPanel)
self.graphPanel.layout().addWidget(self.graph)
QVBoxLayout(self)
self.layout().addWidget(self.lblTitle)
self.layout().addWidget(buttonBox)
self.layout().addWidget(self.graphPanel)
示例4: __init__
def __init__(self, *args):
BlissWidget.__init__(self, *args)
self.defineSlot("newScan", ())
self.defineSlot("newScanPoint", ())
self.scanObject = None
self.xdata = []
self.ydata = []
self.isConnected = None
self.canAddPoint = True
self.addProperty("specVersion", "string", "")
self.addProperty("backgroundColor", "combo", ("white", "default"), "white")
self.addProperty("graphColor", "combo", ("white", "default"), "white")
self.lblTitle = QLabel(self)
self.graphPanel = QFrame(self)
buttonBox = QHBox(self)
self.lblPosition = QLabel(buttonBox)
self.graph = QtBlissGraph(self.graphPanel)
QObject.connect(
self.graph, PYSIGNAL("QtBlissGraphSignal"), self.handleBlissGraphSignal
)
QObject.disconnect(
self.graph,
SIGNAL("plotMousePressed(const QMouseEvent&)"),
self.graph.onMousePressed,
)
QObject.disconnect(
self.graph,
SIGNAL("plotMouseReleased(const QMouseEvent&)"),
self.graph.onMouseReleased,
)
self.graph.canvas().setMouseTracking(True)
self.graph.enableLegend(False)
self.graph.enableZoom(False)
self.graph.setAutoLegend(False)
self.lblPosition.setAlignment(Qt.AlignRight)
self.lblTitle.setAlignment(Qt.AlignHCenter)
self.lblTitle.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.lblPosition.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
buttonBox.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
QVBoxLayout(self.graphPanel)
self.graphPanel.layout().addWidget(self.graph)
QVBoxLayout(self)
self.layout().addWidget(self.lblTitle)
self.layout().addWidget(buttonBox)
self.layout().addWidget(self.graphPanel)
示例5: __init__
def __init__(self, parent=None, name="scan_plot_widget"):
qt.QWidget.__init__(self, parent, name)
self.xdata = []
self.ylabel = ""
self.isRealTimePlot = None
self.isConnected = None
self.isScanning = None
self.lblTitle = qt.QLabel(self)
self.graphPanel = qt.QFrame(self)
buttonBox = qt.QHBox(self)
self.lblPosition = qt.QLabel(buttonBox)
self.graph = QtBlissGraph(self.graphPanel)
qt.QObject.connect(
self.graph, qt.PYSIGNAL("QtBlissGraphSignal"), self.handleBlissGraphSignal
)
qt.QObject.disconnect(
self.graph,
qt.SIGNAL("plotMousePressed(const QMouseEvent&)"),
self.graph.onMousePressed,
)
qt.QObject.disconnect(
self.graph,
qt.SIGNAL("plotMouseReleased(const QMouseEvent&)"),
self.graph.onMouseReleased,
)
self.graph.canvas().setMouseTracking(True)
self.graph.enableLegend(False)
self.graph.enableZoom(False)
# self.graph.setAutoLegend(False)
self.lblPosition.setAlignment(qt.Qt.AlignRight)
self.lblTitle.setAlignment(qt.Qt.AlignHCenter)
self.lblTitle.setSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Fixed)
self.lblPosition.setSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Fixed)
buttonBox.setSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Fixed)
qt.QVBoxLayout(self.graphPanel)
self.graphPanel.layout().addWidget(self.graph)
qt.QVBoxLayout(self)
self.layout().addWidget(self.lblTitle)
self.layout().addWidget(buttonBox)
self.layout().addWidget(self.graphPanel)
self.setPaletteBackgroundColor(qt.Qt.white)
示例6: __init__
def __init__(self, parent = None, name = "scan_plot_widget"):
QtGui.QWidget.__init__(self, parent)
if name is not None:
self.setObjectName(name)
self.xdata = []
self.ylabel = ""
self.isRealTimePlot = None
self.isConnected = None
self.isScanning = None
self.lblTitle = QtGui.QLabel(self)
#self.graphPanel = qt.QFrame(self)
#buttonBox = qt.QHBox(self)
self.lblPosition = QtGui.QLabel(self)
self.graph = QtBlissGraph(self)
QtCore.QObject.connect(self.graph, QtCore.SIGNAL('QtBlissGraphSignal'), self.handleBlissGraphSignal)
QtCore.QObject.disconnect(self.graph, QtCore.SIGNAL('plotMousePressed(const QMouseEvent&)'), self.graph.onMousePressed)
QtCore.QObject.disconnect(self.graph, QtCore.SIGNAL('plotMouseReleased(const QMouseEvent&)'), self.graph.onMouseReleased)
self.graph.canvas().setMouseTracking(True)
self.graph.enableLegend(False)
self.graph.enableZoom(False)
#self.graph.setAutoLegend(False)
"""self.lblPosition.setAlignment(qt.Qt.AlignRight)
self.lblTitle.setAlignment(qt.Qt.AlignHCenter)
self.lblTitle.setSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Fixed)
self.lblPosition.setSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Fixed)
buttonBox.setSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Fixed)
qt.QVBoxLayout(self.graphPanel)
self.graphPanel.layout().addWidget(self.graph)
qt.QVBoxLayout(self)
self.layout().addWidget(self.lblTitle)
self.layout().addWidget(buttonBox)
self.layout().addWidget(self.graphPanel)
self.setPaletteBackgroundColor(qt.Qt.white)"""
_main_vlayout = QtGui.QVBoxLayout(self)
_main_vlayout.addWidget(self.lblTitle)
_main_vlayout.addWidget(self.lblPosition)
_main_vlayout.addWidget(self.graph)
_main_vlayout.setSpacing(2)
_main_vlayout.setContentsMargins(0, 0, 0, 0)
示例7: __init__
def __init__(self, *args):
BlissWidget.__init__(self, *args)
self.defineSignal('newScan', ())
self.scanObject = None
self.xdata = []
self.ylable = ""
self.mylog = 0
self.canAddPoint = True
self.dm = DataManager()
event.connect(self.dm, "scan_new", self.newScan)
event.connect(self.dm, "scan_data", self.newScanPoint)
self.addProperty('backgroundColor', 'combo', ('white', 'default'), 'white')
self.addProperty('graphColor', 'combo', ('white', 'default'), 'white')
self.lblTitle = QLabel(self)
self.graphPanel = QFrame(self)
buttonBox = QHBox(self)
self.lblPosition = QLabel(buttonBox)
self.graph = QtBlissGraph(self.graphPanel)
QObject.connect(self.graph, PYSIGNAL('QtBlissGraphSignal'), self.handleBlissGraphSignal)
QObject.disconnect(self.graph, SIGNAL('plotMousePressed(const QMouseEvent&)'), self.graph.onMousePressed)
QObject.disconnect(self.graph, SIGNAL('plotMouseReleased(const QMouseEvent&)'), self.graph.onMouseReleased)
self.graph.canvas().setMouseTracking(True)
self.graph.enableLegend(False)
self.graph.enableZoom(False)
self.graph.setAutoLegend(False)
self.lblPosition.setAlignment(Qt.AlignRight)
self.lblTitle.setAlignment(Qt.AlignHCenter)
self.lblTitle.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.lblPosition.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
buttonBox.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
QVBoxLayout(self.graphPanel)
self.graphPanel.layout().addWidget(self.graph)
QVBoxLayout(self)
self.layout().addWidget(self.lblTitle)
self.layout().addWidget(buttonBox)
self.layout().addWidget(self.graphPanel)
示例8: SoleilScanPlotBrick
class SoleilScanPlotBrick(BlissWidget):
def __init__(self, *args):
BlissWidget.__init__(self, *args)
self.defineSlot('newScan', ())
self.defineSlot('newScanPoint',())
self.scanObject = None
self.xdata = []
self.ydata = []
self.isConnected = None
self.canAddPoint = True
self.addProperty('specVersion', 'string', '')
self.addProperty('backgroundColor', 'combo', ('white', 'default'), 'white')
self.addProperty('graphColor', 'combo', ('white', 'default'), 'white')
self.lblTitle = QLabel(self)
self.graphPanel = QFrame(self)
buttonBox = QHBox(self)
self.lblPosition = QLabel(buttonBox)
self.graph = QtBlissGraph(self.graphPanel)
QObject.connect(self.graph, PYSIGNAL('QtBlissGraphSignal'), self.handleBlissGraphSignal)
QObject.disconnect(self.graph, SIGNAL('plotMousePressed(const QMouseEvent&)'), self.graph.onMousePressed)
QObject.disconnect(self.graph, SIGNAL('plotMouseReleased(const QMouseEvent&)'), self.graph.onMouseReleased)
self.graph.canvas().setMouseTracking(True)
self.graph.enableLegend(False)
self.graph.enableZoom(False)
self.graph.setAutoLegend(False)
self.lblPosition.setAlignment(Qt.AlignRight)
self.lblTitle.setAlignment(Qt.AlignHCenter)
self.lblTitle.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.lblPosition.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
buttonBox.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
QVBoxLayout(self.graphPanel)
self.graphPanel.layout().addWidget(self.graph)
QVBoxLayout(self)
self.layout().addWidget(self.lblTitle)
self.layout().addWidget(buttonBox)
self.layout().addWidget(self.graphPanel)
def propertyChanged(self, property, oldValue, newValue):
if property == 'specVersion':
if self.scanObject is not None:
self.safeDisconnect()
self.scanObject = None
if self.scanObject is not None:
self.safeConnect()
elif property == 'backgroundColor':
if newValue == 'white':
self.setPaletteBackgroundColor(Qt.white)
elif newValue == 'default':
self.setPaletteBackgroundColor(QWidget.paletteBackgroundColor(self))
elif property == 'graphColor':
if newValue == 'white':
self.graph.canvas().setPaletteBackgroundColor(Qt.white)
elif newValue == 'default':
self.graph.canvas().setPaletteBackgroundColor(QWidget.paletteBackgroundColor(self))
else:
BlissWidget.propertyChanged(self,property,oldValue,newValue)
def newScan(self, scanParameters):
logging.info('newScan scanParameters %s' % str(scanParameters) )
self.lblTitle.setText('<nobr><b>%s</b></nobr>' % scanParameters['title'])
self.graph.xlabel(scanParameters['xlabel'])
self.graph.ylabel(scanParameters['ylabel'])
self.graph.setx1timescale(False)
self.xdata = []
self.ydata = []
self.graph.newcurve('scan', self.xdata, self.ydata)
self.graph.replot()
def newScanPoint(self, x, y):
logging.info('newScanPoint x %s, y %s' % (x,y))
self.xdata.append(x)
self.ydata.append(y)
self.graph.newcurve('scan', self.xdata, self.ydata, curveinfo='bo-')
self.graph.replot()
def handleBlissGraphSignal(self, signalDict):
if signalDict['event'] == 'MouseAt':
self.lblPosition.setText("(X: %f, Y: %f)" % (signalDict['x'], signalDict['y']))
def safeConnect(self):
if not self.isConnected:
self.connect(self.scanObject, PYSIGNAL('newScanPoint'), self.newScan)
self.connect(self.scanObject, PYSIGNAL('newPoint'), self.newScanPoint)
self.isConnected=True
#.........这里部分代码省略.........
示例9: SoleilScanPlotBrick
class SoleilScanPlotBrick(BlissWidget):
def __init__(self, *args):
BlissWidget.__init__(self, *args)
self.defineSlot("newScan", ())
self.defineSlot("newScanPoint", ())
self.scanObject = None
self.xdata = []
self.ydata = []
self.isConnected = None
self.canAddPoint = True
self.addProperty("specVersion", "string", "")
self.addProperty("backgroundColor", "combo", ("white", "default"), "white")
self.addProperty("graphColor", "combo", ("white", "default"), "white")
self.lblTitle = QLabel(self)
self.graphPanel = QFrame(self)
buttonBox = QHBox(self)
self.lblPosition = QLabel(buttonBox)
self.graph = QtBlissGraph(self.graphPanel)
QObject.connect(
self.graph, PYSIGNAL("QtBlissGraphSignal"), self.handleBlissGraphSignal
)
QObject.disconnect(
self.graph,
SIGNAL("plotMousePressed(const QMouseEvent&)"),
self.graph.onMousePressed,
)
QObject.disconnect(
self.graph,
SIGNAL("plotMouseReleased(const QMouseEvent&)"),
self.graph.onMouseReleased,
)
self.graph.canvas().setMouseTracking(True)
self.graph.enableLegend(False)
self.graph.enableZoom(False)
self.graph.setAutoLegend(False)
self.lblPosition.setAlignment(Qt.AlignRight)
self.lblTitle.setAlignment(Qt.AlignHCenter)
self.lblTitle.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.lblPosition.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
buttonBox.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
QVBoxLayout(self.graphPanel)
self.graphPanel.layout().addWidget(self.graph)
QVBoxLayout(self)
self.layout().addWidget(self.lblTitle)
self.layout().addWidget(buttonBox)
self.layout().addWidget(self.graphPanel)
def propertyChanged(self, property, oldValue, newValue):
if property == "specVersion":
if self.scanObject is not None:
self.safeDisconnect()
self.scanObject = None
if self.scanObject is not None:
self.safeConnect()
elif property == "backgroundColor":
if newValue == "white":
self.setPaletteBackgroundColor(Qt.white)
elif newValue == "default":
self.setPaletteBackgroundColor(QWidget.paletteBackgroundColor(self))
elif property == "graphColor":
if newValue == "white":
self.graph.canvas().setPaletteBackgroundColor(Qt.white)
elif newValue == "default":
self.graph.canvas().setPaletteBackgroundColor(
QWidget.paletteBackgroundColor(self)
)
else:
BlissWidget.propertyChanged(self, property, oldValue, newValue)
def newScan(self, scanParameters):
logging.info("newScan scanParameters %s" % str(scanParameters))
self.lblTitle.setText("<nobr><b>%s</b></nobr>" % scanParameters["title"])
self.graph.xlabel(scanParameters["xlabel"])
self.graph.ylabel(scanParameters["ylabel"])
self.graph.setx1timescale(False)
self.xdata = []
self.ydata = []
self.graph.newcurve("scan", self.xdata, self.ydata)
self.graph.replot()
def newScanPoint(self, x, y):
logging.info("newScanPoint x %s, y %s" % (x, y))
self.xdata.append(x)
self.ydata.append(y)
self.graph.newcurve("scan", self.xdata, self.ydata, curveinfo="bo-")
self.graph.replot()
def handleBlissGraphSignal(self, signalDict):
#.........这里部分代码省略.........
示例10: BlissScanPlotBrick
class BlissScanPlotBrick(BlissWidget):
def __init__(self, *args):
BlissWidget.__init__(self, *args)
self.defineSignal('newScan', ())
self.scanObject = None
self.xdata = []
self.ylable = ""
self.mylog = 0
self.canAddPoint = True
self.dm = DataManager()
event.connect(self.dm, "scan_new", self.newScan)
event.connect(self.dm, "scan_data", self.newScanPoint)
self.addProperty('backgroundColor', 'combo', ('white', 'default'), 'white')
self.addProperty('graphColor', 'combo', ('white', 'default'), 'white')
self.lblTitle = QLabel(self)
self.graphPanel = QFrame(self)
buttonBox = QHBox(self)
self.lblPosition = QLabel(buttonBox)
self.graph = QtBlissGraph(self.graphPanel)
QObject.connect(self.graph, PYSIGNAL('QtBlissGraphSignal'), self.handleBlissGraphSignal)
QObject.disconnect(self.graph, SIGNAL('plotMousePressed(const QMouseEvent&)'), self.graph.onMousePressed)
QObject.disconnect(self.graph, SIGNAL('plotMouseReleased(const QMouseEvent&)'), self.graph.onMouseReleased)
self.graph.canvas().setMouseTracking(True)
self.graph.enableLegend(False)
self.graph.enableZoom(False)
self.graph.setAutoLegend(False)
self.lblPosition.setAlignment(Qt.AlignRight)
self.lblTitle.setAlignment(Qt.AlignHCenter)
self.lblTitle.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.lblPosition.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
buttonBox.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
QVBoxLayout(self.graphPanel)
self.graphPanel.layout().addWidget(self.graph)
QVBoxLayout(self)
self.layout().addWidget(self.lblTitle)
self.layout().addWidget(buttonBox)
self.layout().addWidget(self.graphPanel)
def propertyChanged(self, property, oldValue, newValue):
if property == 'backgroundColor':
if newValue == 'white':
self.setPaletteBackgroundColor(Qt.white)
elif newValue == 'default':
self.setPaletteBackgroundColor(QWidget.paletteBackgroundColor(self))
elif property == 'graphColor':
if newValue == 'white':
self.graph.canvas().setPaletteBackgroundColor(Qt.white)
elif newValue == 'default':
self.graph.canvas().setPaletteBackgroundColor(QWidget.paletteBackgroundColor(self))
else:
BlissWidget.propertyChanged(self,property,oldValue,newValue)
#def newScan(self, dm, scan_id, filename, motors, npoints, counters, save_flag=True):
def newScan(self, scan_id, filename, motors, npoints, counters, save_flag=True):
self.emit(PYSIGNAL('newScan'), ())
self.lblTitle.setText('<nobr><b>%s</b></nobr>' % filename)
self.xdata = []
self.graph.clearcurves()
#self.graph.xlabel(scanParameters['xlabel'])
self.graph.xlabel("Energy")
self.ylabel = "Counts"
ylabels = self.ylabel.split()
self.ydatas = [[] for x in range(len(ylabels))]
for labels,ydata in zip(ylabels,self.ydatas):
self.graph.newcurve(labels,self.xdata,ydata)
self.graph.ylabel(self.ylabel)
if motors == 'Time':
self.graph.setx1timescale(True)
else:
self.graph.setx1timescale(False)
self.graph.replot()
def newScanPoint(self, scan_id, values):
x = values[0]
self.xdata.append(x)
for label,ydata,yvalue in zip(self.ylabel.split(),self.ydatas,values[1:]):
ydata.append(float(yvalue))
self.graph.newcurve(label,self.xdata,ydata)
self.graph.replot()
def handleBlissGraphSignal(self, signalDict):
if signalDict['event'] == 'MouseAt':
self.lblPosition.setText("(X: %f, Y: %f)" % (signalDict['x'], signalDict['y']))
示例11: ScanPlotWidget
class ScanPlotWidget(qt.QWidget):
def __init__(self, parent=None, name="scan_plot_widget"):
qt.QWidget.__init__(self, parent, name)
self.xdata = []
self.ylabel = ""
self.isRealTimePlot = None
self.isConnected = None
self.isScanning = None
self.lblTitle = qt.QLabel(self)
self.graphPanel = qt.QFrame(self)
buttonBox = qt.QHBox(self)
self.lblPosition = qt.QLabel(buttonBox)
self.graph = QtBlissGraph(self.graphPanel)
qt.QObject.connect(
self.graph, qt.PYSIGNAL("QtBlissGraphSignal"), self.handleBlissGraphSignal
)
qt.QObject.disconnect(
self.graph,
qt.SIGNAL("plotMousePressed(const QMouseEvent&)"),
self.graph.onMousePressed,
)
qt.QObject.disconnect(
self.graph,
qt.SIGNAL("plotMouseReleased(const QMouseEvent&)"),
self.graph.onMouseReleased,
)
self.graph.canvas().setMouseTracking(True)
self.graph.enableLegend(False)
self.graph.enableZoom(False)
# self.graph.setAutoLegend(False)
self.lblPosition.setAlignment(qt.Qt.AlignRight)
self.lblTitle.setAlignment(qt.Qt.AlignHCenter)
self.lblTitle.setSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Fixed)
self.lblPosition.setSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Fixed)
buttonBox.setSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Fixed)
qt.QVBoxLayout(self.graphPanel)
self.graphPanel.layout().addWidget(self.graph)
qt.QVBoxLayout(self)
self.layout().addWidget(self.lblTitle)
self.layout().addWidget(buttonBox)
self.layout().addWidget(self.graphPanel)
self.setPaletteBackgroundColor(qt.Qt.white)
def setRealTimePlot(self, isRealTime):
self.isRealTimePlot = isRealTime
def newScanStarted(self, scanParameters):
self.graph.clearcurves()
self.isScanning = True
self.lblTitle.setText("<nobr><b>%s</b></nobr>" % scanParameters["title"])
self.xdata = []
self.graph.xlabel(scanParameters["xlabel"])
self.ylabel = scanParameters["ylabel"]
ylabels = self.ylabel.split()
self.ydatas = [[] for x in range(len(ylabels))]
for labels, ydata in zip(ylabels, self.ydatas):
self.graph.newcurve(labels, self.xdata, ydata)
self.graph.ylabel(self.ylabel)
self.graph.setx1timescale(False)
self.graph.replot()
self.graph.setTitle("Energy scan started. Waiting values...")
def newScanPoint(self, x, y):
self.xdata.append(x)
for label, ydata, yvalue in zip(
self.ylabel.split(), self.ydatas, str(y).split()
):
ydata.append(float(yvalue))
self.graph.newcurve(label, self.xdata, ydata)
self.graph.setTitle("Energy scan in progress. Please wait...")
self.graph.replot()
def handleBlissGraphSignal(self, signalDict):
if signalDict["event"] == "MouseAt" and self.isScanning:
self.lblPosition.setText(
"(X: %0.2f, Y: %0.2f)" % (signalDict["x"], signalDict["y"])
)
def plotResults(
self,
pk,
fppPeak,
fpPeak,
ip,
fppInfl,
fpInfl,
rm,
chooch_graph_x,
chooch_graph_y1,
chooch_graph_y2,
title,
):
self.graph.clearcurves()
#.........这里部分代码省略.........
示例12: __init__
def __init__(self, *args):
BlissWidget.__init__(self, *args)
self.addProperty("mnemonic", "string", "")
self.addProperty("unit", "combo", ("C", "K"), "C")
self.addProperty("baseTime", "combo", ("current time", "0"), "0")
self.lstChannelValueDisplay = []
self.lstChannelWidgets = []
self.data = {}
self.lakeshore = None
graphBox = QVBox(self)
graphButtonsBox = QHBox(graphBox)
graphButtonsBox.setSpacing(5)
self.graph = QtBlissGraph(graphBox)
self.graph.setx1timescale(True)
self.graph.xlabel("time")
self.graph.ylabel("temperature (%s)" % self["unit"])
self.graph.setPaletteBackgroundColor(Qt.white)
self.graph.canvas().setMouseTracking(True)
self.cmdResetZoom = QPushButton("Reset zoom", graphButtonsBox)
self.lblXY = QLabel("X = ? ; Y = ?", graphButtonsBox)
HorizontalSpacer(graphButtonsBox)
self.cmdSaveData = QToolButton(graphButtonsBox)
self.cmdSaveData.setUsesTextLabel(True)
self.cmdSaveData.setTextLabel("Save data to file")
self.cmdSaveData.setIconSet(QIconSet(Icons.load("save")))
self.cmdSaveData.setTextPosition(QToolButton.BesideIcon)
self.topFrame = QVGroupBox("Lakeshore - ", self)
updateFreqBox = QHBox(self.topFrame)
updateFreqBox.setSpacing(5)
QLabel("Update frequency : every", updateFreqBox)
self.spnUpdateFrequency = QSpinBox(64, 30000, 500, updateFreqBox)
QLabel("millisecond", updateFreqBox)
self.lblUpdateFrequency = QLabel("<nobr><b>current = ?</b></nobr>", updateFreqBox)
self.cmdUpdateFrequency = QPushButton("Change", updateFreqBox)
HorizontalSpacer(updateFreqBox)
self.lblStatus = QLabel("<h1>status</h1>", self.topFrame)
self.lblStatus.setAlignment(Qt.AlignCenter)
innerBox = QVBox(self.topFrame)
self.channelsBox = QGrid(8, innerBox)
self.channelsBox.setSpacing(5)
self.channelsBox.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
commandsBox = QVBox(innerBox)
VerticalSpacer(self.topFrame)
resetBox = QHBox(self.topFrame)
HorizontalSpacer(resetBox)
#self.cmdReset = QToolButton(resetBox)
#self.cmdReset.setUsesTextLabel(True)
#self.cmdReset.setTextLabel("Reset instrument")
#self.cmdReset.setIconSet(QIconSet(Icons.load("reload")))
#self.cmdReset.setTextPosition(QToolButton.BesideIcon)
#QObject.connect(self.cmdReset, SIGNAL("clicked()"), self.lsReset)
QObject.connect(self.cmdResetZoom, SIGNAL('clicked()'), self.graph.ResetZoom)
QObject.connect(self.cmdSaveData, SIGNAL('clicked()'), self.saveGraph)
QObject.connect(self.graph, PYSIGNAL('QtBlissGraphSignal'), self.graphSignal)
QObject.connect(self.cmdUpdateFrequency, SIGNAL("clicked()"), self.lsUpdateFrequency)
QVBoxLayout(self, 5, 5)
self.layout().addWidget(graphBox)
self.layout().addWidget(self.topFrame)
示例13: LakeshoreBrick
class LakeshoreBrick(BlissWidget):
def __init__(self, *args):
BlissWidget.__init__(self, *args)
self.addProperty("mnemonic", "string", "")
self.addProperty("unit", "combo", ("C", "K"), "C")
self.addProperty("baseTime", "combo", ("current time", "0"), "0")
self.lstChannelValueDisplay = []
self.lstChannelWidgets = []
self.data = {}
self.lakeshore = None
graphBox = QVBox(self)
graphButtonsBox = QHBox(graphBox)
graphButtonsBox.setSpacing(5)
self.graph = QtBlissGraph(graphBox)
self.graph.setx1timescale(True)
self.graph.xlabel("time")
self.graph.ylabel("temperature (%s)" % self["unit"])
self.graph.setPaletteBackgroundColor(Qt.white)
self.graph.canvas().setMouseTracking(True)
self.cmdResetZoom = QPushButton("Reset zoom", graphButtonsBox)
self.lblXY = QLabel("X = ? ; Y = ?", graphButtonsBox)
HorizontalSpacer(graphButtonsBox)
self.cmdSaveData = QToolButton(graphButtonsBox)
self.cmdSaveData.setUsesTextLabel(True)
self.cmdSaveData.setTextLabel("Save data to file")
self.cmdSaveData.setIconSet(QIconSet(Icons.load("save")))
self.cmdSaveData.setTextPosition(QToolButton.BesideIcon)
self.topFrame = QVGroupBox("Lakeshore - ", self)
updateFreqBox = QHBox(self.topFrame)
updateFreqBox.setSpacing(5)
QLabel("Update frequency : every", updateFreqBox)
self.spnUpdateFrequency = QSpinBox(64, 30000, 500, updateFreqBox)
QLabel("millisecond", updateFreqBox)
self.lblUpdateFrequency = QLabel("<nobr><b>current = ?</b></nobr>", updateFreqBox)
self.cmdUpdateFrequency = QPushButton("Change", updateFreqBox)
HorizontalSpacer(updateFreqBox)
self.lblStatus = QLabel("<h1>status</h1>", self.topFrame)
self.lblStatus.setAlignment(Qt.AlignCenter)
innerBox = QVBox(self.topFrame)
self.channelsBox = QGrid(8, innerBox)
self.channelsBox.setSpacing(5)
self.channelsBox.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
commandsBox = QVBox(innerBox)
VerticalSpacer(self.topFrame)
resetBox = QHBox(self.topFrame)
HorizontalSpacer(resetBox)
#self.cmdReset = QToolButton(resetBox)
#self.cmdReset.setUsesTextLabel(True)
#self.cmdReset.setTextLabel("Reset instrument")
#self.cmdReset.setIconSet(QIconSet(Icons.load("reload")))
#self.cmdReset.setTextPosition(QToolButton.BesideIcon)
#QObject.connect(self.cmdReset, SIGNAL("clicked()"), self.lsReset)
QObject.connect(self.cmdResetZoom, SIGNAL('clicked()'), self.graph.ResetZoom)
QObject.connect(self.cmdSaveData, SIGNAL('clicked()'), self.saveGraph)
QObject.connect(self.graph, PYSIGNAL('QtBlissGraphSignal'), self.graphSignal)
QObject.connect(self.cmdUpdateFrequency, SIGNAL("clicked()"), self.lsUpdateFrequency)
QVBoxLayout(self, 5, 5)
self.layout().addWidget(graphBox)
self.layout().addWidget(self.topFrame)
def graphSignal(self, dict):
if dict['event'] == 'MouseAt':
self.lblXY.setText("X = %.3f ; Y = %.3f" % (dict['x'], dict['y']))
def setStatus(self, status):
self.lblStatus.setText("<nobr><h1>status: %s</h1></nobr>" % status)
def updateFrequency(self, freq):
self.lblUpdateFrequency.setText("<nobr><b>current = %d</b></nobr>" % freq)
self.spnUpdateFrequency.setValue(freq)
def propertyChanged(self, property, oldValue, newValue):
if property == 'mnemonic':
self.lakeshore = self.getHardwareObject(newValue)
if self.lakeshore is not None:
self.lakeshore.setUnit(self["unit"])
self.topFrame.setTitle("Lakeshore - %s" % self.lakeshore.getIdent())
self.updateFrequency(self.lakeshore.interval)
for w in self.lstChannelWidgets:
w.close(True)
self.lstChannelValueDisplay = []
self.lstChannelWidgets = []
self.channelCheckboxCb = weakref.WeakKeyDictionary()
for i in range(self.lakeshore.getChannelsNumber()):
newCheckbox = QCheckBox("Channel %d" % (i+1), self.channelsBox)
self.lstChannelWidgets.append(newCheckbox)
#.........这里部分代码省略.........
示例14: PymcaPlotWidget
class PymcaPlotWidget(QWidget):
"""
Descript. :
"""
def __init__(self, parent, realtime_plot = False):
"""
Descript. :
"""
QWidget.__init__(self, parent)
self.axis_x_array = []
self.axis_y_array = []
self.realtime_plot = realtime_plot
self.pymca_graph = Graph(self)
self.pymca_graph.showGrid()
self.info_label = QLabel("", self)
self.info_label.setAlignment(Qt.AlignRight)
_main_vlayout = QVBoxLayout(self)
_main_vlayout.addWidget(self.pymca_graph)
_main_vlayout.addWidget(self.info_label)
_main_vlayout.setSpacing(2)
_main_vlayout.setContentsMargins(2, 2, 2, 2)
self.setSizePolicy(QSizePolicy.Expanding,
QSizePolicy.Expanding)
if qt_variant == 'PyQt5':
pass
else:
QObject.connect(self.pymca_graph,
SIGNAL("QtBlissGraphSignal"),
self.handle_graph_signal)
Qt4_widget_colors.set_widget_color(self, Qt4_widget_colors.WHITE)
def clear(self):
"""
Descript. :
"""
self.pymca_graph.clearcurves()
self.pymca_graph.setTitle("")
self.info_label.setText("")
def plot_energy_scan_curve(self, scan_result, scan_title):
"""Results are converted to two list describing
x and y axes
"""
x_data = [item[0] for item in scan_result]
y_data = [item[1] for item in scan_result]
self.pymca_graph.newcurve("Energy", x_data, y_data)
self.pymca_graph.replot()
self.pymca_graph.setTitle(scan_title)
self.pymca_graph.setx1axislimits(min(x_data), max(x_data))
def start_new_scan(self, scan_info):
"""
Descript. :
"""
self.axis_x_array = []
self.axis_y_array = []
self.pymca_graph.clearcurves()
self.pymca_graph.xlabel(scan_info['xlabel'])
self.ylabel = scan_info['ylabel']
self.pymca_graph.ylabel(self.ylabel)
self.pymca_graph.setx1timescale(False)
self.pymca_graph.replot()
self.pymca_graph.setTitle(scan_info['title'])
def plot_energy_scan_results(self, pk, fppPeak, fpPeak, ip, fppInfl,
fpInfl, rm, chooch_graph_x, chooch_graph_y1, chooch_graph_y2, title):
"""
"""
self.pymca_graph.clearcurves()
self.pymca_graph.setTitle(title)
self.pymca_graph.newcurve("spline", chooch_graph_x, chooch_graph_y1)
self.pymca_graph.newcurve("fp", chooch_graph_x, chooch_graph_y2)
self.pymca_graph.replot()
self.pymca_graph.setx1axislimits(min(chooch_graph_x),
max(chooch_graph_x))
def plot_finished(self):
"""
Descript. :
"""
if self.axis_x_array:
self.pymca_graph.setx1axislimits(min(self.axis_x_array),
max(self.axis_x_array))
self.pymca_graph.replot()
def add_new_plot_value(self, x, y):
"""
Descript. :
"""
if self.realtime_plot:
self.axis_x_array.append(x / 1000.0)
self.axis_y_array.append(y / 1000.0)
#.........这里部分代码省略.........
示例15: SpecScanPlotBrick
class SpecScanPlotBrick(BlissWidget):
def __init__(self, *args):
BlissWidget.__init__(self, *args)
self.defineSignal('newScan', ())
self.scanObject = None
self.xdata = []
self.ylable = ""
self.mylog = 0
self.isConnected = None
#self.canAddPoint = None
self.canAddPoint = True
self.addProperty('specVersion', 'string', '')
self.addProperty('backgroundColor', 'combo', ('white', 'default'), 'white')
self.addProperty('graphColor', 'combo', ('white', 'default'), 'white')
self.lblTitle = QLabel(self)
self.graphPanel = QFrame(self)
buttonBox = QHBox(self)
#self.cmdZoomIn = QToolButton(buttonBox)
#self.cmdZoomOut = QToolButton(buttonBox)
self.lblPosition = QLabel(buttonBox)
self.graph = QtBlissGraph(self.graphPanel)
QObject.connect(self.graph, PYSIGNAL('QtBlissGraphSignal'), self.handleBlissGraphSignal)
QObject.disconnect(self.graph, SIGNAL('plotMousePressed(const QMouseEvent&)'), self.graph.onMousePressed)
QObject.disconnect(self.graph, SIGNAL('plotMouseReleased(const QMouseEvent&)'), self.graph.onMouseReleased)
#QObject.connect(self.cmdZoomIn, SIGNAL('clicked()'), self.cmdZoomInClicked)
#QObject.connect(self.cmdZoomOut, SIGNAL('clicked()'), self.cmdZoomOutClicked)
#self.cmdZoomIn.setIconSet(QIconSet(Icons.load("zoomin")))
#self.cmdZoomOut.setIconSet(QIconSet(Icons.load("zoomout")))
#self.cmdZoomIn.setToggleButton(True)
#self.cmdZoomOut.setToggleButton(True)
#self.cmdZoomIn.setUsesTextLabel(False)
#self.cmdZoomOut.setUsesTextLabel(False)
self.graph.canvas().setMouseTracking(True)
self.graph.enableLegend(False)
self.graph.enableZoom(False)
self.graph.setAutoLegend(False)
self.lblPosition.setAlignment(Qt.AlignRight)
self.lblTitle.setAlignment(Qt.AlignHCenter)
self.lblTitle.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.lblPosition.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
buttonBox.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
QVBoxLayout(self.graphPanel)
self.graphPanel.layout().addWidget(self.graph)
QVBoxLayout(self)
self.layout().addWidget(self.lblTitle)
self.layout().addWidget(buttonBox)
self.layout().addWidget(self.graphPanel)
def propertyChanged(self, property, oldValue, newValue):
if property == 'specVersion':
if self.scanObject is not None:
self.safeDisconnect()
self.scanObject = QSpecScan(newValue)
if self.scanObject is not None:
self.safeConnect()
elif property == 'backgroundColor':
if newValue == 'white':
self.setPaletteBackgroundColor(Qt.white)
elif newValue == 'default':
self.setPaletteBackgroundColor(QWidget.paletteBackgroundColor(self))
elif property == 'graphColor':
if newValue == 'white':
self.graph.canvas().setPaletteBackgroundColor(Qt.white)
elif newValue == 'default':
self.graph.canvas().setPaletteBackgroundColor(QWidget.paletteBackgroundColor(self))
else:
BlissWidget.propertyChanged(self,property,oldValue,newValue)
def newScan(self, scanParameters):
#self.canAddPoint = True
self.emit(PYSIGNAL('newScan'), ())
self.lblTitle.setText('<nobr><b>%s</b></nobr>' % scanParameters['title'])
self.xdata = []
self.graph.clearcurves()
self.graph.xlabel(scanParameters['xlabel'])
self.ylabel = scanParameters['ylabel']
ylabels = self.ylabel.split()
self.ydatas = [[] for x in range(len(ylabels))]
for labels,ydata in zip(ylabels,self.ydatas):
self.graph.newcurve(labels,self.xdata,ydata)
self.graph.ylabel(self.ylabel)
#.........这里部分代码省略.........