Multithreaded Keyboard Detector For Linux And Windows
I would like to add a keyboard detection for Linux to my existing Keyboard Detector for Windows. So I used pyudev to create a LinuxKeyboardDetector. The script can be started and t
Solution 1:
According to this answer, you have to start the monitor before the Qt app event loop. In this case, you must not use a QRunnable at all, as the monitor will work as a standard QObject, working asynchronously and sending signals whenever required.
If you still want to keep the same interface, using QRunnable, I think that the only solution is to use the basic pyudev.MonitorObserver
, instead of the dedicated pyqt version.
class LinuxKeyboardDetector(QRunnable):
def __init__(self):
super().__init__()
self.signals = KeyboardDetectorSignals()
self.context = pyudev.Context()
self.monitor = pyudev.Monitor.from_netlink(self.context)
self.observer = pyudev.MonitorObserver(self.monitor, self.process_device_event)
def run(self):
self.monitor.filter_by(subsystem="usb", device_type="usb_device")
self.observer.start()
Post a Comment for "Multithreaded Keyboard Detector For Linux And Windows"