【问题标题】:QML WebView not selectable?QML WebView 不可选择?
【发布时间】:2014-03-31 02:29:35
【问题描述】:

我有最新的Qt,我也在试用QtWebKit.experimental,所以,不使用它不是限制。我希望能够从我的WebView 中选择文本,或者甚至能够捕获这些事件,无论如何,像下面这样的标准WebView 不允许我从中选择文本,我尝试这样做,但没有选择发生,我应该怎么做才能选择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 文件之外的元素,例如,我正在从 WebViewloadHtml 加载 HTML 内容。

【问题讨论】:

  • 我认为现在没有办法做到这一点,以前的版本通过设置 WebView::pressGrabTime 来允许它。希望您能找到解决方案或等待新版本。

标签: qt qml


【解决方案1】:

从阅读本文(src:QML WebView Element Qt 4.8

用户交互和导航

默认情况下,某些鼠标和触摸事件会优先于 Web 内容传递给其他项目。例如,当通过将 WebView 放置在 Flickable 中来创建滚动视图时,会将移动事件传递给 Flickable,以便用户可以滚动页面。这可以防止用户意外选择网页中的文本而不是滚动。 pressGrabTime 属性定义了在 Web 内容接收选择文本和图像所需的移动事件之前,用户必须在 WebView 上触摸或按下鼠标按钮的时间。 当此项具有键盘焦点时,所有键盘输入将直接发送到其中的网页。

Qt 5.x 没有WebView::pressGrabTime,当我阅读并观看了一些 Qt 开发日视频,讨论 QtWebEngine 的变化以及 Qt 未来版本中的变化时, webkit 将被 Google 的 Chromium 网络引擎 取代 ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    • 2014-07-22
    相关资源
    最近更新 更多