Можно ли ввести CSS в QML WebView? - PullRequest
1 голос
/ 19 марта 2020

Я искал информацию о введении CSS в QML WebView. Do c говорит, что QML WebView - это облегченная версия Qt Widgets WebView. Поэтому я предполагаю, что невозможно ввести CSS в WebView. Не так ли?

1 Ответ

2 голосов
/ 19 марта 2020

Возможное решение состоит в том, чтобы ввести css через javascript (как я указал в это решение ):

import QtQuick 2.14
import QtQuick.Window 2.14
import QtWebView 1.14

Window {
    visible: true
    width: 640
    height: 480
    QtObject{
        id: internals
        property string css: "div { background-color: salmon;}"
    }
    WebView{
        anchors.fill: parent
        url: "https://stackoverflow.com"
        onLoadingChanged: {
            if(loadRequest.status == WebView.LoadSucceededStatus){
                runJavaScript(loadCSS("foo", internals.css))
            }
        }
    }
    function loadCSS(name, css){
        var script = "
    (function() {
    css = document.createElement('style');
    css.type = 'text/css';
    css.id = '" + name + "'; " +
    "document.head.appendChild(css);
    css.innerText ='"  + css +"'" +
    "})()";
        return script;
    }
}

enter image description here

...