Python程序无法正确响应非英语键盘输入

时间:2019-02-20 01:02:21

标签: python keyboard-events

我有一个简单的Python脚本,可以使用基于this post的笔记本电脑相机拍照。

尤其是,用户可以通过按ESC退出程序。以下是脚本的一部分

# cv2 is OpenCV module
key = cv2.waitKey(1)

# ESC is pressed
if k % 256 == 27:
    print("ESC is pressed, exit ...")
    break

尽管一切正常。但是,当将键盘更改为其他输入(例如俄语,中文)时,在流式传输视频时,按任意键(此处表示A,B,C,...,Z键)出现以下错误的程序会打印出来。

ASSERT: "false" in file qasciikey.cpp, line 501
Abort trap: 6

使用英语/法语/德语键盘时找不到此错误。

如何在我的Python脚本中正确处理此问题?谢谢

1 个答案:

答案 0 :(得分:0)

看起来像opencv waitKey不适用于Unicode字符。您可以尝试使用不同的方法,如果您使用Windows,则可以尝试使用pywin32获取字符

import win32api
if win32api.GetAsyncKeyState(0x0000001B): #0x1B 0x001B
    print("ESC is pressed, exit ...")
    break

或者您可以使用数字按钮来中断循环:

if cv2.waitKey(25)==0x30: #digit zero 0x0030 0x00000030
    print("num 0 is pressed, exit ...")
    break