2013-05-22 78 views
0

我有一個由QWebView控件在PyQT中顯示的HTML頁面。此HTML頁面包括一個「輸入」元件作爲以下給出將按鍵事件從HTML元素傳遞給python?

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

蟒部分的代碼段,其顯示如下

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

上述HTML給出我處理QWebView的鍵事件python部分如下

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

這工作正常;並且我可以看到哪些鍵在QWebView中被觸發。但是,一旦我點擊我的輸入元素,並嘗試編輯幾個值,這些鍵沒有得到keyPressEvent。它在html元素內部處理,我認爲。我只想將這些關鍵事件同時傳遞給我的python部分;我正在考慮一點點黑客來完成這項工作。

任何解決方案將非常感激。

在此先感謝

回答

0

我會嘗試使用QWebView獲得在QWebElement將接收HTML輸入。

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

現在,你有input的抱着你可以在keyPressEvent後讀取或者乾脆直接連接到QWebElement(這是不可能的)。

你可以簡單地恢復與

print unicode(input.toOuterXml()) 
文本