如何使 WebView 透明?

Nat*_*man 4 application-development qml ubuntu-sdk

考虑以下 QML 片段:

Page {
    WebView {
        id: webView
        anchors.fill: parent
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用以下 JavaScript 在 WebView 中加载一些 HTML:

webView.loadHtml('<b>test</b>');
Run Code Online (Sandbox Code Playgroud)

但是,WebView 具有白色背景:

在此处输入图片说明

(忽略文本太小这一事实。)

有没有办法使背景透明?

Syl*_*eau 5

你可以试试 QtWebKit.experimental。如果您将 import QtWebKit.experimental 1.0 添加到 QML 文件中,您的 WebView 对象将可以访问实验属性:

import QtQuick 2.0
import QtWebKit.experimental 1.0
import Ubuntu.Components 0.1


MainView {
    id: main
    width: units.gu(100)
    height: units.gu(75)

    Page {
        id: mypage
        Rectangle {
            color: "green"
            anchors.fill: mypage
            WebView {
                id: webView
                anchors.fill: parent
                experimental.transparentBackground: true
            }
        }

        Component.onCompleted: webView.loadHtml("<p>Hello</p>");
    }
}
Run Code Online (Sandbox Code Playgroud)

显然你会得到这样的警告:

警告:实验性 API 会因版本而异,甚至会被删除。你被警告了!