我有一个程序,无论用户使用什么键盘语言设置,我都需要在按下的键的javascript中获取键码。
这是我的代码:
JS:
window.addEventListener('keydown', function(e) {
console.log(e.keyCode);
// it works fine in all browsers, but in qwebview keycode == 0 in russian layout
});
蟒蛇:
class View(QWebView):
def __init__(self, parent=None):
super(QWebView, self).__init__(parent)
def keyPressEvent(self, e):
print e.key() # same as in JS
print e.nativeScanCode() # ??
# QWebView.keyPressEvent(self, e)
使用e.code
属性而不是e.keyCode
。例如,按美式或法式键盘上的第一个字母键(法语,它是A)将给你KeyQ
。
请注意,它不适用于Edge。截至2019年4月的第18版测试。
使用此网站进行测试:http://keycode.info