2014-03-30 55 views
1

我有最新的Qt,另外,我正在嘗試QtWebKit.experimental,所以,不要使用它並不是一個限制。我希望能夠從我的WebView中選擇文本,或者甚至能夠捕獲這些事件,無論如何,像以下這樣的標準WebView不允許我從中選擇文本,但我嘗試了,但沒有選擇發生,什麼我應該做一個可選的WebView嗎?QML WebView不可選?

import QtQuick 2.2 
import QtQuick.Window 2.1 
import QtQuick.Controls 1.1 
import QtWebKit 3.0 
import QtWebKit.experimental 1.0 

ApplicationWindow { 
    flags: Qt.FramelessWindowHint 
    width: 500 
    height: 500 
    x: (Screen.width - width)/2 
    y: (Screen.height - height)/2 
    color: "transparent" 

    WebView { 
     objectName: "html" 
     anchors.fill: parent 
     experimental.transparentBackground: true 
     focus: true 
     Keys.onEscapePressed: Qt.quit() 
    } 
} 

注意:我操縱QML文件外的元件,例如,我通過loadHtml加載在WebView HTML內容。

+0

我認爲現在沒有辦法做到這一點,以前的版本允許通過設置WebView :: pressGrabTime。希望您能找到解決方案或等待新版本發佈。 – Redanium

回答

2

從閱讀本(SRC:QML WebView Element Qt 4.8

用戶交互和導航

默認情況下,某些鼠標和觸摸事件被傳遞到其他物品優先於Web內容。例如,當通過將WebView放入Flickable中創建滾動視圖時,移動事件將傳遞到Flickable,以便用戶可以滾動頁面。這可以防止用戶意外地選擇網頁中的文本而不是滾動。 pressGrabTime屬性定義在Web內容將接收其選擇文本和圖像所需的移動事件之前,用戶必須觸摸的時間或在WebView上按下鼠標按鈕的時間。 當此項目具有鍵盤焦點時,所有鍵盤輸入將直接發送到其中的網頁。

Qt的5.x的沒有WebView::pressGrabTime和我閱讀和觀看了Qt的developper天視頻談論QtWebEngine的變化,並在Qt的未來的版本中,WebKit的谷歌的替代鉻網絡引擎 ...