将按键事件从HTML元素传递给python

Passing key press event from HTML element to python?

本文关键字:python 元素 HTML 事件      更新时间:2023-09-26

我有一个HTML页面,由QWebView控件在PyQT中显示。这个HTML页面由一个'input'元素组成,如下所示

    <html>
     <body>
      <input id="username"></input>
     </body>
    <html>

显示上述html的python部分的代码片段如下

    view = QWebView()
    view.load('myview.html')
    view.show()

我正在处理python部分的QWebView的关键事件,如下所示

    def keyPressEvent(self, event):
        print event.Key()

这个工作很好;我可以看到哪个键在QWebView中被触发。但是,一旦我单击输入元素并尝试编辑几个值,这些键就不会进入keyPressEvent。我认为它是在html元素本身内部处理的。我只想同时将这些关键事件传递给python部分;我正在考虑用一点黑客的方式来完成这个任务。

任何解决方案都将非常感激。

Thanks in advance

我会尝试使用您的QWebView来获得将接收html输入的QWebElement

documentElement = view.page().currentFrame().documentElement()
input = documentElement.findFirst('input[id="username"]')

现在你已经控制了input,你可以在keyPressEvent之后读取它,或者直接连接到QWebElement(这可能是不可能的)。

您可以简单地使用

恢复文本
 print unicode(input.toOuterXml())