diff --git a/examples/JoystickButton.py b/examples/JoystickButton.py new file mode 100644 index 00000000..0c733513 --- /dev/null +++ b/examples/JoystickButton.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- + +## Display an animated arrowhead following a curve. +## This example uses the CurveArrow class, which is a combination +## of ArrowItem and CurvePoint. +## +## To place a static arrow anywhere in a scene, use ArrowItem. +## To attach other types of item to a curve, use CurvePoint. + +import initExample ## Add path to library (just for examples; you do not need this) + +from pyqtgraph.Qt import QtGui, QtCore +import pyqtgraph as pg + + +app = QtGui.QApplication([]) +mw = QtGui.QMainWindow() +mw.resize(300,50) +cw = QtGui.QWidget() +mw.setCentralWidget(cw) +layout = QtGui.QGridLayout() +cw.setLayout(layout) +mw.show() + +l1 = pg.ValueLabel(siPrefix=True, suffix='m') +l2 = pg.ValueLabel(siPrefix=True, suffix='m') +jb = pg.JoystickButton() +jb.setFixedWidth(30) +jb.setFixedHeight(30) + + +layout.addWidget(l1, 0, 0) +layout.addWidget(l2, 0, 1) +layout.addWidget(jb, 0, 2) + +x = 0 +y = 0 +def update(): + global x, y, l1, l2, jb + dx, dy = jb.getState() + x += dx * 1e-3 + y += dy * 1e-3 + l1.setValue(x) + l2.setValue(y) +timer = QtCore.QTimer() +timer.timeout.connect(update) +timer.start(30) + + + + +## Start Qt event loop unless running in interactive mode or using pyside. +import sys +if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): + app.exec_() diff --git a/examples/__main__.py b/examples/__main__.py index 8511327d..632f516a 100644 --- a/examples/__main__.py +++ b/examples/__main__.py @@ -42,7 +42,7 @@ examples = OrderedDict([ ('ColorButton', '../widgets/ColorButton.py'), #('CheckTable', '../widgets/CheckTable.py'), #('VerticalLabel', '../widgets/VerticalLabel.py'), - ('JoystickButton', '../widgets/JoystickButton.py'), + ('JoystickButton', 'JoystickButton.py'), ])), ('GraphicsScene', 'GraphicsScene.py'), diff --git a/widgets/JoystickButton.py b/widgets/JoystickButton.py index 5320563f..0ef5f2ee 100644 --- a/widgets/JoystickButton.py +++ b/widgets/JoystickButton.py @@ -4,7 +4,7 @@ from pyqtgraph.Qt import QtGui, QtCore __all__ = ['JoystickButton'] class JoystickButton(QtGui.QPushButton): - sigStateChanged = QtCore.Signal(object, object) + sigStateChanged = QtCore.Signal(object, object) ## self, state def __init__(self, parent=None): QtGui.QPushButton.__init__(self, parent) @@ -34,6 +34,9 @@ class JoystickButton(QtGui.QPushButton): def doubleClickEvent(self, ev): ev.accept() + def getState(self): + return self.state + def setState(self, *xy): xy = list(xy) d = (xy[0]**2 + xy[1]**2)**0.5