2016-04-07 8 views
3

ich meinen Code von Qt 5.5 auf Qt 5.6, ein Upgrade, aber ich habe keinen Weg zum Tor des folgenden Code finden:QWebView :: settings() -> setUserStyleSheetUrl() von QtWebKit zu QtWebEngine?

QWebEngineView *qwebview = new QWebEngineView(this); 
qwebview->settings()->setUserStyleSheetUrl(QUrl("qrc:/about.css")); 
qwebview->setHtml(fileContentStr); 

Was ist der beste Weg ist, einen Benutzer CSS mit der neuen Qt einfügen Web-Engine?

+0

Die qwebenginesetting hat nicht die Methode setUserStyleSheetUrl ... –

Antwort

1

Wenn Sie hier lesen: Bug Report on QWebEngine, werden Sie sehen, dass:

Die einzige Möglichkeit, CSS-Code in die WebEngineView zu injizieren ist mit Hilfe von JavaScript. Es wäre schön, eine entsprechende API für dieses zu haben und es könnte wie unsere bereits existierende UserScripts API aussehen.

Es scheint ziemlich klar: Sie können die WebSettings nicht mehr verwenden, um CSS einzufügen. Dafür müssen Sie stattdessen HTML/JavaScript verwenden.

Ich weiß nicht, ob es Ihnen helfen wird, aber hier ist ein Auszug aus dem, was ich getan habe.

In meinem .cpp:

m_pView = new QWebEngineView(this); 

QUrl startURL = QUrl("path/to/index.html"); 

m_pView->setUrl(startURL); 

Und im index.html:

<html> 
    <head> 
     <title>TITLE</title> 
     <meta charset="UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 

     <!-- Many JS scripts here --> 

     <link href="./css/style.css" rel="stylesheet"> 

    </head> 
    <body ng-app="myApp" > 
     <div ui-view class="page"></div> 
    </body> 
</html> 

Hoffnung, das hilft.

+0

Hallo @Alexis P, meine style.css ist in einer qrc-Datei ... Aber ich werde Ihre Lösung versuchen. Danke! –