Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在不打开终端窗口的情况下等待python3中按下热键?_Python 3.x_Opencv_Pynput - Fatal编程技术网

Python 3.x 如何在不打开终端窗口的情况下等待python3中按下热键?

Python 3.x 如何在不打开终端窗口的情况下等待python3中按下热键?,python-3.x,opencv,pynput,Python 3.x,Opencv,Pynput,我想要某种封锁,直到按下某个热键。我很乐意使用类似输入(“按Enter键继续”)的功能,除了这需要我的屏幕在终端页面上,我希望这可以在我专注于另一个窗口时拾取我的按键 Luis Jose在这里提出的解决方案似乎很有效,而且我已经在使用opencv进行SmoEthing了,这很好,所以它被导入了:但是运行代码对我来说没有任何作用,它没有发现我按下了“a”并且永远停留在循环中的事实 import cv2 while (1): k=0xFF & cv2.waitKey(1)

我想要某种封锁,直到按下某个热键。我很乐意使用类似输入(“按Enter键继续”)的功能,除了这需要我的屏幕在终端页面上,我希望这可以在我专注于另一个窗口时拾取我的按键

Luis Jose在这里提出的解决方案似乎很有效,而且我已经在使用opencv进行SmoEthing了,这很好,所以它被导入了:但是运行代码对我来说没有任何作用,它没有发现我按下了“a”并且永远停留在循环中的事实

import cv2

while (1):
    k=0xFF & cv2.waitKey(1)
    if k == ord('a'):
        break

当使用cv2.imshow创建显示窗口并希望停止显示时,cv2.waitKey设计为工作,因此上述代码将不起作用。这是有道理的,因为opencv被设计成一个图像和视频处理工具箱。您可以尝试使用pynput包

from pynput import keyboard

def on_press(key):
    try:
        print('alphanumeric key {0} pressed'.format(
            key.char))
    except AttributeError:
        print('special key {0} pressed'.format(
            key))

def on_release(key):
    print('{0} released'.format(
        key))
    if key == keyboard.Key.esc:
        # Stop listener
        return False

# Collect events until released
with keyboard.Listener(
        on_press=on_press,
        on_release=on_release) as listener:
    listener.join()
按esc键时,上述代码终止。 有关软件包的更多详细信息,请访问: