本文整理汇总了Python中pyqtgraph.flowchart.Flowchart.widget方法的典型用法代码示例。如果您正苦于以下问题:Python Flowchart.widget方法的具体用法?Python Flowchart.widget怎么用?Python Flowchart.widget使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyqtgraph.flowchart.Flowchart
的用法示例。
在下文中一共展示了Flowchart.widget方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: AppWindow
# 需要导入模块: from pyqtgraph.flowchart import Flowchart [as 别名]
# 或者: from pyqtgraph.flowchart.Flowchart import widget [as 别名]
class AppWindow(QtGui.QMainWindow, hackYourOwn.Ui_MainWindow,utilitiesClass):
def __init__(self, parent=None,**kwargs):
super(AppWindow, self).__init__(parent)
self.setupUi(self)
self.I=kwargs.get('I',None)
self.setWindowTitle('pyqtgraph example: FlowchartCustomNode')
## Create an empty flowchart with a single input and output
self.fc = Flowchart(terminals={
'dataIn': {'io': 'in'},
})
self.w = self.fc.widget()
self.WidgetLayout.addWidget(self.fc.widget())
self.plot1 = self.add2DPlot(self.ExperimentLayout)
self.plot2 = self.add2DPlot(self.ExperimentLayout)
self.curve1 = self.addCurve(self.plot1)
self.curve2 = self.addCurve(self.plot2)
self.curve1.setData([1,2,3],[5,6,7])
self.library = fclib.LIBRARY.copy() # start with the default node set
self.library.addNodeType(PlotViewNode, [('Display',)])
self.library.addNodeType(CaptureNode, [('Acquire',)])
self.fc.setLibrary(self.library)
## Now we will programmatically add nodes to define the function of the flowchart.
## Normally, the user will do this manually or by loading a pre-generated
## flowchart file.
self.cap = self.fc.createNode('Capture', pos=(0, 0))
self.cap.setI(self.I)
self.v1Node = self.fc.createNode('PlotView', pos=(0, -150))
self.v1Node.setView(self.curve1)
self.v2Node = self.fc.createNode('PlotView', pos=(150, -150))
self.v2Node.setView(self.curve2)
self.fc.connectTerminals(self.fc['dataIn'], self.cap['dataIn'])
self.fc.connectTerminals(self.cap['dataOut'], self.v1Node['data'])
#self.fc.connectTerminals(self.fc['dataIn'], self.v2Node['data'])
self.fc.setInput(dataIn=True)
def run(self):
self.fc.setInput(dataIn=True)
def __del__(self):
#self.looptimer.stop()
print ('bye')
def closeEvent(self, event):
self.finished=True
示例2: __init__
# 需要导入模块: from pyqtgraph.flowchart import Flowchart [as 别名]
# 或者: from pyqtgraph.flowchart.Flowchart import widget [as 别名]
def __init__(self, parent=None):
super(Demo, self).__init__()
self.setWindowTitle("Fourier Transformation")
self.showFullScreen()
self.layout = QtGui.QGridLayout()
self.setLayout(self.layout)
fc = Flowchart(terminals={
'dataIn': {'io': 'in'},
'dataOut': {'io': 'out'}
})
self.layout.addWidget(fc.widget(), 0, 0, 2, 1)
pw1 = pg.PlotWidget()
pw2 = pg.PlotWidget()
pw1.getPlotItem().setLabel('left', text='Amplitude')
pw1.getPlotItem().setLabel('bottom', text='Time')
pw2.getPlotItem().setLabel('left', text='Y(freq)')
pw2.getPlotItem().setLabel('bottom', text='F(Hz)')
self.layout.addWidget(pw1, 0, 1)
self.layout.addWidget(pw2, 1, 1)
sampling_rate = 150.0
sampling_interval = 1.0 / sampling_rate; # Abtastfrequenz f = (1/t)
time_vector = np.arange(0, 1, sampling_interval)
signal_frequency = 10
data = np.sin(2 * np.pi * signal_frequency * time_vector)
print data
fc.setInput(dataIn=data)
pw1Node = fc.createNode('PlotWidget', pos=(0, -150))
pw1Node.setPlot(pw1)
pw2Node = fc.createNode('PlotWidget', pos=(150, -150))
pw2Node.setPlot(pw2)
fNode = fc.createNode('AnalyzeNode', pos=(0, 0))
fc.connectTerminals(fc['dataIn'], fNode['dataIn'])
fc.connectTerminals(fc['dataIn'], pw1Node['In'])
fc.connectTerminals(fNode['dataOut'], pw2Node['In'])
fc.connectTerminals(fNode['dataOut'], fc['dataOut'])
示例3: __init__
# 需要导入模块: from pyqtgraph.flowchart import Flowchart [as 别名]
# 或者: from pyqtgraph.flowchart.Flowchart import widget [as 别名]
def __init__(self, imagepath='images/'):
super(FlowChartWidget, self).__init__()
pg.setConfigOption('background', 'w')
pg.setConfigOption('foreground', 'k')
self.imagepath = imagepath
layout = QVBoxLayout()
## Create flowchart, define input/output terminals
fc = Flowchart(terminals={
'dataIn': {'io': 'in'},
'dataOut': {'io': 'out'}
})
w = fc.widget()
layout.addWidget(w)
self.setLayout(layout)
示例4: setup_displaying_of_plots
# 需要导入模块: from pyqtgraph.flowchart import Flowchart [as 别名]
# 或者: from pyqtgraph.flowchart.Flowchart import widget [as 别名]
def setup_displaying_of_plots():
"""
setup of all PyQt and PyQtGraph related objects for further use
:return: newly constructed window object, central_widget object,
layout object and flowchart object
"""
win = QtGui.QMainWindow()
win.setWindowTitle("Analyze")
central_widget = QtGui.QWidget()
win.setCentralWidget(central_widget)
layout = QtGui.QGridLayout()
central_widget.setLayout(layout)
fc = Flowchart(terminals={})
layout.addWidget(fc.widget(), 0, 0, 2, 1)
return win, central_widget, layout, fc
示例5: Flowchart
# 需要导入模块: from pyqtgraph.flowchart import Flowchart [as 别名]
# 或者: from pyqtgraph.flowchart.Flowchart import widget [as 别名]
if __name__ == '__main__':
import sys
app = QtGui.QApplication([])
win = QtGui.QMainWindow()
win.setWindowTitle('Activity tracker')
cw = QtGui.QWidget()
win.setCentralWidget(cw)
layout = QtGui.QGridLayout()
cw.setLayout(layout)
# Create an empty flowchart with a single input and output
fc = Flowchart(terminals={
'dataIn': {'io': 'in'},
'dataOut': {'io': 'out'}
})
w = fc.widget()
layout.addWidget(fc.widget(), 0, 0, 2, 1)
# wiimote node
wiimoteNode = fc.createNode('Wiimote', pos=(0, -300), )
# X
# buffer for X
xBufferNode = fc.createNode('CSV', pos=(150, -450))
# fft for X
xFftNode = fc.createNode('Fft', pos=(600, -450))
# plotting fft data of X
xFftPlotWidget = pg.PlotWidget()
layout.addWidget(xFftPlotWidget, 0, 2)
xFftPlotWidget.setYRange(0, 150)
示例6: Demo
# 需要导入模块: from pyqtgraph.flowchart import Flowchart [as 别名]
# 或者: from pyqtgraph.flowchart.Flowchart import widget [as 别名]
class Demo(QtGui.QWidget):
def __init__(self, parent=None):
super(Demo, self).__init__()
self.setWindowTitle("Gesture Recognizer")
self.showFullScreen()
self.layout = QtGui.QGridLayout()
self.setLayout(self.layout)
self.fc = Flowchart(terminals={
'dataIn': {'io': 'in'},
'dataOut': {'io': 'out'}
})
self.layout.addWidget(self.fc.widget(), 0, 0, 2, 1)
self.path = {'x': [], 'y': []}
self.threshold = 50
self.sample_size = 64
self.default_msg = 'No template matched...'
self.error_ir_msg = 'No ir-values received'
self.error_wiimote_msg = 'No wiimote connected'
self.error_template_msg = 'No template could be created'
self.pressed_key = None
self.dollar = Recognizer()
self.config_nodes()
self.config_layout()
self.setup_templates()
self.get_wiimote()
'''
The command-line argument is parsed and used to establish
a connection to the wiimote
'''
def get_wiimote(self):
if len(sys.argv) == 1:
addr, name = wiimote.find()[0]
elif len(sys.argv) == 2:
addr = sys.argv[1]
name = None
elif len(sys.argv) == 3:
addr, name = sys.argv[1:3]
print("Connecting to %s (%s)" % (name, addr))
self.wiimoteNode.text.setText(addr)
self.wiimoteNode.connect_wiimote()
'''
A wiimote node and a buffer node are created as well as a
custom node which returns the position of the most intense
light source detected by the wiimote
'''
def config_nodes(self):
self.wiimoteNode = self.fc.createNode('Wiimote', pos=(0, 0), )
self.bufferNode = self.fc.createNode('Buffer', pos=(0, -150))
self.pointVisNode = self.fc.createNode('Vis2D', pos=(-150, 150))
self.bufferNode.setBufferSize(4)
self.fc.connectTerminals(
self.wiimoteNode['irVals'],
self.bufferNode['dataIn'])
self.fc.connectTerminals(
self.bufferNode['dataOut'],
self.pointVisNode['irVals'])
'''
A scatterplot is used to display the infrafred data and a text label
should indicate if the user input matches a predefined template
'''
def config_layout(self):
gview = pg.GraphicsLayoutWidget()
self.layout.addWidget(gview, 0, 1, 2, 1)
self.templatePlot = gview.addPlot()
self.templateScatter = pg.ScatterPlotItem(
size=10, pen=pg.mkPen(None), brush=pg.mkBrush(0, 255, 0, 120))
self.templatePlot.addItem(self.templateScatter)
self.templatePlot.setTitle("Template")
self.setRange(self.templatePlot, False)
# self.layout.addWidget(gview, 0, 1, 2, 1)
self.pathPlot = gview.addPlot()
self.pathScatter = pg.ScatterPlotItem(
size=10, pen=pg.mkPen(None), brush=pg.mkBrush(255, 255, 255, 120))
self.pathPlot.addItem(self.pathScatter)
self.pathPlot.setTitle("Path")
self.setRange(self.pathPlot, False)
self.label = QtGui.QLabel()
self.label.setText(self.default_msg)
font = QtGui.QFont("Arial")
font.setPointSize(32)
self.label.setFont(font)
self.layout.addWidget(self.label, 2, 1, 1, 1)
'''
#.........这里部分代码省略.........
示例7: Flowchart
# 需要导入模块: from pyqtgraph.flowchart import Flowchart [as 别名]
# 或者: from pyqtgraph.flowchart.Flowchart import widget [as 别名]
#####################################
# Create Flow Chart and components
#####################################
# Create flowchart, define input/output terminals
fc = Flowchart(terminals={
#'sigOut': {'io': 'in'},
#'sigOut2': {'io': 'in'}#,
#'sigIn': {'io': 'out'} #We don't currently need any outputs from FC
}, name='Connections')
# Remove the unnecessary input and output nodes
fc.removeNode(fc.inputNode)
fc.removeNode(fc.outputNode)
flowchart = fc.widget()
d3.addWidget(flowchart)
flowchart_dock.addWidget(fc.widget().chartWidget)
#Register own node types
fclib.registerNodeType(OscilloscopeNode, [('SciEdu',)])
fclib.registerNodeType(FilterNode, [('SciEdu',)])
fclib.registerNodeType(CharToBinaryNode, [('SciEdu',)])
# fclib.registerNodeType(BinaryToCharNode, [('SciEdu',)]) # TODO
fclib.registerNodeType(ParityNode, [('SciEdu',)])
fclib.registerNodeType(CheckParityNode, [('SciEdu',)])
fclib.registerNodeType(FFTNode, [('SciEdu',)])
fclib.registerNodeType(SigGenNode, [('SciEdu',)])
fclib.registerNodeType(AmplifierNode, [('SciEdu',)])
fclib.registerNodeType(LineEncoderNode, [('SciEdu',)])
fclib.registerNodeType(RectifierNode, [('SciEdu',)])
示例8: Demo
# 需要导入模块: from pyqtgraph.flowchart import Flowchart [as 别名]
# 或者: from pyqtgraph.flowchart.Flowchart import widget [as 别名]
class Demo(QtGui.QWidget):
def __init__(self, parent=None):
super(Demo, self).__init__()
self.setWindowTitle("Wiimote Activity")
self.showFullScreen()
self.layout = QtGui.QGridLayout()
self.setLayout(self.layout)
self.fc = Flowchart(terminals={"dataIn": {"io": "in"}, "dataOut": {"io": "out"}})
self.layout.addWidget(self.fc.widget(), 0, 0, 4, 1)
self.createNodes()
# self.getWiimote()
# connect to wiimote with an address given as argument
def getWiimote(self):
if len(sys.argv) == 1:
addr, name = wiimote.find()[0]
elif len(sys.argv) == 2:
addr = sys.argv[1]
name = None
elif len(sys.argv) == 3:
addr, name = sys.argv[1:3]
print ("Connecting to %s (%s)" % (name, addr))
self.wiimoteNode.text.setText(addr)
self.wiimoteNode.connect_wiimote()
def update(self):
outputValues = self.activityNode.outputValues()
if outputValues["activity"] is not None:
self.label.setText(outputValues["activity"])
pg.QtGui.QApplication.processEvents()
# create and config the nodes needed to recognize activities
def createNodes(self):
pwX = pg.PlotWidget()
pwY = pg.PlotWidget()
pwZ = pg.PlotWidget()
pwX.getPlotItem().hideAxis("bottom")
pwX.setYRange(300, 700)
pwY.getPlotItem().hideAxis("bottom")
pwY.setYRange(300, 700)
pwZ.getPlotItem().hideAxis("bottom")
pwZ.setYRange(300, 700)
self.label = QtGui.QLabel()
self.label.setText("No activity yet...")
font = QtGui.QFont("Arial")
font.setPointSize(32)
self.label.setFont(font)
self.layout.addWidget(pwX, 0, 1)
self.layout.addWidget(pwY, 1, 1)
self.layout.addWidget(pwZ, 2, 1)
self.layout.addWidget(self.label, 3, 1)
pwXNode = self.fc.createNode("PlotWidget", pos=(-150, -150))
pwXNode.setPlot(pwX)
pwYNode = self.fc.createNode("PlotWidget", pos=(0, -150))
pwYNode.setPlot(pwY)
pwZNode = self.fc.createNode("PlotWidget", pos=(150, -150))
pwZNode.setPlot(pwZ)
self.activityNode = self.fc.createNode("ClassifierNode", pos=(0, 150))
"""
self.wiimoteNode = self.fc.createNode('Wiimote', pos=(-300, 0))
self.bufferXNode = self.fc.createNode('Buffer', pos=(-150, -300))
self.bufferYNode = self.fc.createNode('Buffer', pos=(0, -300))
self.bufferZNode = self.fc.createNode('Buffer', pos=(150, -300))
self.fc.connectTerminals(
self.wiimoteNode['accelX'], self.bufferXNode['dataIn'])
self.fc.connectTerminals(
self.wiimoteNode['accelY'], self.bufferYNode['dataIn'])
self.fc.connectTerminals(
self.wiimoteNode['accelZ'], self.bufferZNode['dataIn'])
self.fc.connectTerminals(self.bufferXNode['dataOut'], pwXNode['In'])
self.fc.connectTerminals(self.bufferYNode['dataOut'], pwYNode['In'])
self.fc.connectTerminals(self.bufferZNode['dataOut'], pwZNode['In'])
self.fc.connectTerminals(
self.bufferXNode['dataOut'], self.activityNode['accelX'])
self.fc.connectTerminals(
self.bufferYNode['dataOut'], self.activityNode['accelY'])
self.fc.connectTerminals(
self.bufferZNode['dataOut'], self.activityNode['accelZ'])
"""
def keyPressEvent(self, ev):
if ev.key() == QtCore.Qt.Key_Escape:
self.close()
示例9: Flowchart
# 需要导入模块: from pyqtgraph.flowchart import Flowchart [as 别名]
# 或者: from pyqtgraph.flowchart.Flowchart import widget [as 别名]
from pyqtgraph.flowchart import Flowchart
from pyqtgraph.Qt import QtGui
#import pyqtgraph.flowchart as f
app = QtGui.QApplication([])
#TETRACYCLINE = True
fc = Flowchart(terminals={
'dataIn': {'io': 'in'},
'dataOut': {'io': 'out'}
})
w = fc.widget()
w.resize(400,200)
w.show()
n1 = fc.createNode('Add')
n2 = fc.createNode('Subtract')
n3 = fc.createNode('Abs')
n4 = fc.createNode('Add')
fc.connectTerminals(fc.dataIn, n1.A)
fc.connectTerminals(fc.dataIn, n1.B)
fc.connectTerminals(fc.dataIn, n2.A)
fc.connectTerminals(n1.Out, n4.A)
fc.connectTerminals(n1.Out, n2.B)
fc.connectTerminals(n2.Out, n3.In)
fc.connectTerminals(n3.Out, n4.B)
示例10: Demo
# 需要导入模块: from pyqtgraph.flowchart import Flowchart [as 别名]
# 或者: from pyqtgraph.flowchart.Flowchart import widget [as 别名]
class Demo(QtGui.QWidget):
def __init__(self, parent=None):
super(Demo, self).__init__()
self.setWindowTitle("Plotting the Wiimote")
self.showFullScreen()
self.layout = QtGui.QGridLayout()
self.setLayout(self.layout)
self.flowchart = Flowchart(terminals={
'xDataIn': {'io': 'in'},
'yDataIn': {'io': 'in'},
'zDataIn': {'io': 'in'},
'xDataOut': {'io': 'out'},
'yDataOut': {'io': 'out'},
'zDataOut': {'io': 'out'}
})
self.layout.addWidget(self.flowchart.widget(), 0, 0, 3, 1)
fclib.registerNodeType(WiimoteNode, [('Display',)])
self.wii_node = self.flowchart.createNode('Wiimote', pos=(0, 0))
self.axes = ['x', 'y', 'z']
# positions for all nodes; order:
# raw_node xpos, raw_node ypos, filtered_node xpos, filtered_node ypos,
# filter_node xpos, filter_node ypos
self.positions = {
'x': [-450, -350, -300, -350, -375, -150],
'y': [-150, -350, 0, -350, -75, -150],
'z': [150, -350, 300, -350, 225, -150],
}
# create, style, config and connect the elements for every axis
for axis in self.axes:
index = self.axes.index(axis)
plot_raw = pyqtgraph.PlotWidget()
plot_filtered = pyqtgraph.PlotWidget()
# add widget for this axis in next row
self.layout.addWidget(plot_filtered, index, 2, 1, 2)
self.configPlotItems(axis, plot_raw, plot_filtered)
self.createNodes(axis, plot_raw, plot_filtered)
self.connectNodes(axis)
pyqtgraph.setConfigOptions(antialias=True)
self.flowchart.setInput(xDataIn=0)
self.flowchart.setInput(yDataIn=0)
self.flowchart.setInput(zDataIn=0)
# create raw, filter and filtered node
def createNodes(self, axis, plot_raw, plot_filtered):
# create filtered node
self.plot_filtered_node = self.flowchart.createNode(
'PlotWidget', pos=(
self.positions[axis][2],
self.positions[axis][3]))
self.plot_filtered_node.setPlot(plot_filtered)
# create gaussian filter
self.filter_node = self.flowchart.createNode(
'GaussianFilter', pos=(
self.positions[axis][4],
self.positions[axis][5]))
self.filter_node.ctrls['sigma'].setValue(5)
# connect nodes: flowchart -> wiinode -> plot_raw + filter_node
# -> filtered_node
def connectNodes(self, axis):
self.flowchart.connectTerminals(
self.flowchart[axis + 'DataIn'], self.wii_node[axis + 'DataIn'])
self.flowchart.connectTerminals(
self.wii_node[axis + 'DataOut'], self.filter_node['In'])
self.flowchart.connectTerminals(
self.filter_node['Out'], self.plot_filtered_node['In'])
#self.flowchart.connectTerminals(
# self.filter_node['Out'], self.flowchart[axis + 'DataOut'])
# config plot items
def configPlotItems(self, axis, plot_raw, plot_filtered):
plot_raw.getPlotItem().setTitle("The " + axis + " Accelerometer")
plot_raw.getPlotItem().setMenuEnabled(False)
plot_raw.getPlotItem().setClipToView(False)
plot_raw.getPlotItem().hideAxis('bottom')
plot_raw.getPlotItem().showGrid(x=True, y=True, alpha=0.5)
plot_filtered.getPlotItem().setTitle(
"The " + axis + " Accelerometer - Filtered")
plot_filtered.getPlotItem().setMenuEnabled(False)
#.........这里部分代码省略.........
示例11: Demo
# 需要导入模块: from pyqtgraph.flowchart import Flowchart [as 别名]
# 或者: from pyqtgraph.flowchart.Flowchart import widget [as 别名]
class Demo(QtGui.QWidget):
def __init__(self, parent=None):
super(Demo, self).__init__()
self.setWindowTitle("Pointing Device")
self.show()
self.layout = QtGui.QGridLayout()
self.setLayout(self.layout)
self.buffer_amount = 20
self.fc = Flowchart(terminals={
'dataIn': {'io': 'in'},
'dataOut': {'io': 'out'}
})
self.layout.addWidget(self.fc.widget(), 0, 0, 2, 1)
self.configNodes()
self.configScatterPlot()
self.getWiimote()
def getWiimote(self):
if len(sys.argv) == 1:
addr, name = wiimote.find()[0]
elif len(sys.argv) == 2:
addr = sys.argv[1]
name = None
elif len(sys.argv) == 3:
addr, name = sys.argv[1:3]
print("Connecting to %s (%s)" % (name, addr))
self.wiimoteNode.text.setText(addr)
self.wiimoteNode.connect_wiimote()
# create and connect nodes
def configNodes(self):
self.pointVisNode = self.fc.createNode('Vis3D', pos=(-150, 150))
self.wiimoteNode = self.fc.createNode('Wiimote', pos=(0, 0), )
self.bufferNode = self.fc.createNode('Buffer', pos=(0, -150))
self.buffer_amount = self.bufferNode.getBufferSize()
self.fc.connectTerminals(
self.wiimoteNode['irVals'],
self.bufferNode['dataIn'])
self.fc.connectTerminals(
self.bufferNode['dataOut'],
self.pointVisNode['irVals'])
# create and config scatter plot item
def configScatterPlot(self):
gview = pg.GraphicsLayoutWidget()
self.layout.addWidget(gview, 0, 1, 2, 1)
plot = gview.addPlot()
self.scatter = pg.ScatterPlotItem(
size=10, pen=pg.mkPen(None), brush=pg.mkBrush(255, 255, 255, 120))
plot.addItem(self.scatter)
plot.setXRange(-1000, 200)
plot.setYRange(-1000, 200)
def keyPressEvent(self, ev):
if ev.key() == QtCore.Qt.Key_Escape:
self.close()
# do actions in loop
def update(self):
outputValues = self.pointVisNode.outputValues()
isX1Valid = outputValues['irX1'] is not None
isY1Valid = outputValues['irY1'] is not None
isX2Valid = outputValues['irX2'] is not None
isY2Valid = outputValues['irY2'] is not None
if isX1Valid and isX2Valid and isY1Valid and isY2Valid:
distance = self.calcDistance(outputValues)
if distance > 0:
size = 3000 * (1 / distance * 2)
self.scatter.setData(
pos=[[
-outputValues['irX1'],
-outputValues['irY1']],
[-outputValues['irX2'], -outputValues['irY2']]],
size=size, pxMode=True)
# raise or lower buffer amount with +/- keys
if self.wiimoteNode.wiimote is not None:
if self.wiimoteNode.wiimote.buttons['Plus']:
self.buffer_amount += 1
self.bufferNode.setBufferSize(self.buffer_amount)
elif self.wiimoteNode.wiimote.buttons['Minus']:
if self.buffer_amount > 1:
self.buffer_amount -= 1
self.bufferNode.setBufferSize(self.buffer_amount)
pyqtgraph.QtGui.QApplication.processEvents()
#.........这里部分代码省略.........
示例12: Demo
# 需要导入模块: from pyqtgraph.flowchart import Flowchart [as 别名]
# 或者: from pyqtgraph.flowchart.Flowchart import widget [as 别名]
class Demo(QtGui.QWidget):
def __init__(self, parent=None):
super(Demo, self).__init__()
self.setWindowTitle("Pointing Device")
self.show()
self.layout = QtGui.QGridLayout()
self.setLayout(self.layout)
self.fc = Flowchart(terminals={
'dataIn': {'io': 'in'},
'dataOut': {'io': 'out'}
})
self.layout.addWidget(self.fc.widget(), 0, 0, 2, 1)
self.configNodes()
self.configScatterPlot()
self.getWiimote()
# connect to wiimote and config wiimote node
def getWiimote(self):
if len(sys.argv) == 1:
addr, name = wiimote.find()[0]
elif len(sys.argv) == 2:
addr = sys.argv[1]
name = None
elif len(sys.argv) == 3:
addr, name = sys.argv[1:3]
print("Connecting to %s (%s)" % (name, addr))
self.wiimoteNode.text.setText(addr)
self.wiimoteNode.connect_wiimote()
# create and connect nodes
def configNodes(self):
self.pointVisNode = self.fc.createNode('Vis2D', pos=(-150, 150))
self.wiimoteNode = self.fc.createNode('Wiimote', pos=(0, 0), )
self.bufferNode = self.fc.createNode('Buffer', pos=(0, -150))
self.buffer_amount = self.bufferNode.getBufferSize()
self.fc.connectTerminals(
self.wiimoteNode['irVals'],
self.bufferNode['dataIn'])
self.fc.connectTerminals(
self.bufferNode['dataOut'],
self.pointVisNode['irVals'])
# create and config scatter plot item
def configScatterPlot(self):
gview = pg.GraphicsLayoutWidget()
self.layout.addWidget(gview, 0, 1, 2, 1)
plot = gview.addPlot()
self.scatter = pg.ScatterPlotItem(
size=10, pen=pg.mkPen(None), brush=pg.mkBrush(255, 255, 255, 120))
plot.addItem(self.scatter)
plot.setXRange(-1000, 200)
plot.setYRange(-1000, 200)
def keyPressEvent(self, ev):
if ev.key() == QtCore.Qt.Key_Escape:
self.close()
# do actions in loop
def update(self):
outputValues = self.pointVisNode.outputValues()
if outputValues['irX'] is not None and outputValues['irY'] is not None:
self.scatter.setData(pos=[
[-outputValues['irX'], -outputValues['irY']]])
# raise or lower buffer amount with +/- keys
if self.wiimoteNode.wiimote is not None:
if self.wiimoteNode.wiimote.buttons['Plus']:
self.buffer_amount += 1
self.bufferNode.setBufferSize(self.buffer_amount)
elif self.wiimoteNode.wiimote.buttons['Minus']:
if self.buffer_amount > 1:
self.buffer_amount -= 1
self.bufferNode.setBufferSize(self.buffer_amount)
pyqtgraph.QtGui.QApplication.processEvents()
示例13: Demo
# 需要导入模块: from pyqtgraph.flowchart import Flowchart [as 别名]
# 或者: from pyqtgraph.flowchart.Flowchart import widget [as 别名]
class Demo(QtGui.QWidget):
"""
The main class which controls initialization and
processing.
"""
def __init__(self, parent=None):
super(Demo, self).__init__()
self.setWindowTitle("Wiimote Activity")
self.showFullScreen()
self.layout = QtGui.QGridLayout()
self.setLayout(self.layout)
self.fc = Flowchart(terminals={"dataIn": {"io": "in"}, "dataOut": {"io": "out"}})
self.layout.addWidget(self.fc.widget(), 0, 0, 4, 1)
self.createNodes()
self.getWiimote()
# connect to wiimote with an address given as argument
def getWiimote(self):
if len(sys.argv) == 1:
addr, name = wiimote.find()[0]
elif len(sys.argv) == 2:
addr = sys.argv[1]
name = None
elif len(sys.argv) == 3:
addr, name = sys.argv[1:3]
print ("Connecting to %s (%s)" % (name, addr))
self.wiimoteNode.text.setText(addr)
self.wiimoteNode.connect_wiimote()
def update(self):
# let the app process events
pg.QtGui.QApplication.processEvents()
# create and config the nodes needed to recognize activities
def createNodes(self):
pwX = pg.PlotWidget()
pwY = pg.PlotWidget()
pwZ = pg.PlotWidget()
pwX.getPlotItem().hideAxis("bottom")
pwX.setYRange(300, 700)
pwY.getPlotItem().hideAxis("bottom")
pwY.setYRange(300, 700)
pwZ.getPlotItem().hideAxis("bottom")
pwZ.setYRange(300, 700)
self.layout.addWidget(pwX, 0, 1)
self.layout.addWidget(pwY, 1, 1)
self.layout.addWidget(pwZ, 2, 1)
# create nodes
pwXNode = self.fc.createNode("PlotWidget", pos=(-150, -150))
pwXNode.setPlot(pwX)
pwYNode = self.fc.createNode("PlotWidget", pos=(0, -150))
pwYNode.setPlot(pwY)
pwZNode = self.fc.createNode("PlotWidget", pos=(150, -150))
pwZNode.setPlot(pwZ)
self.fileReaderNode = self.fc.createNode("FileReaderNode", pos=(0, 150))
self.fftNode = self.fc.createNode("LiveFFTNode", pos=(0, 300))
self.classifierNode = self.fc.createNode("SvmClassifierNode", pos=(150, 150))
self.visualizerNode = self.fc.createNode("CategoryVisualizerNode", pos=(300, 150))
self.wiimoteNode = self.fc.createNode("Wiimote", pos=(-300, 0))
self.bufferXNode = self.fc.createNode("Buffer", pos=(-150, -300))
self.bufferYNode = self.fc.createNode("Buffer", pos=(0, -300))
self.bufferZNode = self.fc.createNode("Buffer", pos=(150, -300))
self.fc.connectTerminals(self.wiimoteNode["accelX"], self.bufferXNode["dataIn"])
self.fc.connectTerminals(self.wiimoteNode["accelY"], self.bufferYNode["dataIn"])
self.fc.connectTerminals(self.wiimoteNode["accelZ"], self.bufferZNode["dataIn"])
self.fc.connectTerminals(self.bufferXNode["dataOut"], pwXNode["In"])
self.fc.connectTerminals(self.bufferYNode["dataOut"], pwYNode["In"])
self.fc.connectTerminals(self.bufferZNode["dataOut"], pwZNode["In"])
self.fc.connectTerminals(self.fileReaderNode["data"], self.fftNode["samples"])
self.fc.connectTerminals(self.fileReaderNode["categories"], self.classifierNode["categories"])
self.fc.connectTerminals(self.bufferXNode["dataOut"], self.fftNode["accelX"])
self.fc.connectTerminals(self.bufferYNode["dataOut"], self.fftNode["accelY"])
self.fc.connectTerminals(self.bufferZNode["dataOut"], self.fftNode["accelZ"])
self.fc.connectTerminals(self.fftNode["samplesFrequencies"], self.classifierNode["trainingData"])
self.fc.connectTerminals(self.fftNode["testFrequencies"], self.classifierNode["testData"])
self.fc.connectTerminals(self.classifierNode["classification"], self.visualizerNode["classification"])
self.fileReaderNode.update()
def keyPressEvent(self, ev):
#.........这里部分代码省略.........
示例14: Pointer
# 需要导入模块: from pyqtgraph.flowchart import Flowchart [as 别名]
# 或者: from pyqtgraph.flowchart.Flowchart import widget [as 别名]
class Pointer(QtGui.QWidget):
'''
This class reads WiiMote IR data and provides
them on output.
'''
def __init__(self, useWiiMote, parent=None):
super(Pointer, self).__init__()
self.useWiiMote = useWiiMote
self.layout = QtGui.QGridLayout()
self.setLayout(self.layout)
self.buffer_amount = 20
self.fc = Flowchart(terminals={
'dataIn': {'io': 'in'},
'dataOut': {'io': 'out'}
})
self.layout.addWidget(self.fc.widget(), 0, 0, 2, 1)
self.configNodes()
if self.useWiiMote:
self.getWiimote()
self.outputCounter = 0
# connect to wiimoet
def getWiimote(self):
if len(sys.argv) == 1:
addr, name = wiimote.find()[0]
elif len(sys.argv) == 2:
addr = sys.argv[1]
name = None
elif len(sys.argv) == 3:
addr, name = sys.argv[1:3]
print("Connecting to %s (%s)" % (name, addr))
self.wiimoteNode.text.setText(addr)
self.wiimoteNode.connect_wiimote()
# create and connect nodes
def configNodes(self):
self.pointVisNode = self.fc.createNode('Vis3D', pos=(-150, 150))
self.wiimoteNode = self.fc.createNode('Wiimote', pos=(0, 0), )
self.bufferNode = self.fc.createNode('Buffer', pos=(0, -150))
self.buffer_amount = self.bufferNode.getBufferSize()
self.fc.connectTerminals(
self.wiimoteNode['irVals'],
self.bufferNode['dataIn'])
self.fc.connectTerminals(
self.bufferNode['dataOut'],
self.pointVisNode['irVals'])
# create and config scatter plot item
def configScatterPlot(self):
gview = pg.GraphicsLayoutWidget()
self.layout.addWidget(gview, 0, 1, 2, 1)
plot = gview.addPlot()
self.scatter = pg.ScatterPlotItem(
size=10, pen=pg.mkPen(None), brush=pg.mkBrush(255, 255, 255, 120))
plot.addItem(self.scatter)
plot.setXRange(-1000, 200)
plot.setYRange(-1000, 200)
def keyPressEvent(self, ev):
if ev.key() == QtCore.Qt.Key_Escape:
self.close()
# do actions in loop
def update(self):
self.outputValues = self.pointVisNode.outputValues()
if self.useWiiMote is False:
# use simulated data if WiiMote shall not
# be used
self.outputValues = {
'irX0': 30, 'irY0': 120,
'irX1': 40, 'irY1': 130,
'irX2': 400, 'irY2': 400,
'irX3': 410, 'irY3': 410
}
self.outputCounter = self.outputCounter + 2
for key in self.outputValues:
if 'X' in key:
self.outputValues[key] = self.outputValues[key] + \
self.outputCounter
else:
self.outputValues[key] = self.outputValues[key] + \
self.outputCounter
# raise or lower buffer amount with +/- keys
if self.wiimoteNode.wiimote is not None:
if self.wiimoteNode.wiimote.buttons['Plus']:
#.........这里部分代码省略.........