How to get Jog/Shuttle Controller Events
-
I recently got a ContourDesign Shuttle X-Press USB Jog/Shuttle controller that I want to use in an application. I made myself a little pyqt script to try and get events from it:
https://github.com/wrosecrans/PublicSharing/blob/master/events.pyI also made a C++/Qt-5.6 equivalent, and even tried setting an event filter on the QApplication to try to get all events in my application rather than just a window, but I couldn't get anything to happen when I fiddled with the knob or pushed the buttons. (Pushing buttons on the keyboard, or clicking mouse buttons did print a message,s o the approach seemed sound.) I have tested on OS-X and Windows 10 so far, with the drivers for the device installed.
I found this thread:
https://forum.qt.io/topic/60914/how-to-not-allow-qt-to-handle-jog-dial-shuttle-input-device
which seems to indicate that Qt can see events from this sort of device (they were causing problems in that case because they were showing up as normal mouse events and confusing things)
So, how can I get access to this hardware?! I really want to be able to control my app with it. Ideally, I want to differentiate it from "normal" input, but at least I'd like to receive simulated keypresses triggered from the driver software.
-
Hi,
If I understand your case correctly, you don't have any event generated by your Shuttle X-Press ?
-
I'd start with a QAbstractNativeEventFilter based class and check what your receive there when using your device.