如何在后台运行 pynput?

How to run pynput in the background?

我正在使用 pynput 的 keyboard.Listener 并加入了线程。

def main():
    with Listener(on_release=checkSPress) as listener:
        listener.join() # keep on listening

def checkSPress(key):
    if 'char' in dir(key):
        if key.char == 's':
            print("Starting ...")

main()

按下 s 键后,我希望它终止主线程中的侦听器和 运行 事物。我想要这样做是因为在按下 s 键后我创建了一个 GUI,但它抛出了 QApplication must be created inside main thread 的错误。有没有一种方法可以返回到主线程和 运行 函数或完全终止侦听器(我对线程和 pynput 还很陌生。)

您只需要 return Falsecallback 停止 Listner。试试看:

if key.char == 's':
    print("Starting ...")
    return False