QWebView - komische Darstellung eines HTML-Dokuemts

Verschiedenes zu Qt
Antworten
_Andy_
Beiträge: 1
Registriert: 22. Oktober 2016 23:05

QWebView - komische Darstellung eines HTML-Dokuemts

Beitrag von _Andy_ » 23. Oktober 2016 00:06

Hallo Leute,

ich habe mich soeben erst hier im Forum angemeldet. Ich komme aus dem .NET-Bereich und bin noch ein Anfänger im C++-Bereich. Komme ich also zu meinem Problem. Ich habe zu dem Problem auch schon recherchiert, aber ich komme einfach nicht mehr weiter.
Ich habe einen Banana Pro mit Raspbian (Debian-Linux) auf dem mein QT-Programm fast genau so funktioniert wie es soll. Ich wollte das HTML-Widget vom Google-Kalender in meine Anwendung einbetten mit einer WebView, was auch kein Problem darstellte. Also habe ich den HTML-Inhalt in einer HTML-Datei gespeichert und die WebView zur lokalen URL geschickt.
Leider ist die Darstellung der Website komplett anders, als auf einem lokalen Browser - ich habe es mit Firefox ausprobiert, es sieht ganz normal aus.

So sieht es normal im WebBrowser aus:
Eigentlich.png
Eigentlich.png (30.51 KiB) 1442 mal betrachtet
Und so sieht es in der QWebView aus:
Wirklich.png
Wirklich.png (22.86 KiB) 1442 mal betrachtet
Dann hatte ich überlegt, den User-Agent zu ändern: (http://stackoverflow.com/questions/3002 ... -5-effects)

Spezifische WebPage mit dem UserAgent

Code: Alles auswählen

class WebPage : public QWebPage
{
public:
    WebPage(QObject* parent = 0) : QWebPage(parent){}
    QString userAgentForUrl(const QUrl &url) const
    {
        return "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0";
	// Der eigentliche User-Agent von Raspbian beinhaltet die ARM-Architektur, also werden
	// die Seiten mobil dargestellt, deswegen habe ich hier einen anderen verwendet.
    }
};
Erstellen einer neuen Instanz, dem QWebView-Control diese Seite als Hauptseite gegen und zur Url navigieren

Code: Alles auswählen

WebPage* webPage = new WebPage(this);
ui->webView->setPage(webPage);
ui->webView->load(QUrl("/home/bananapi/Projekte ...")); // Hier habe ich dann natürlich den vollen und richtigen Pfad angegeben (schließlich hat er die Seite ja auch geladen)
Leider macht das keinen Unterschied.
Ich bin mir nicht ganz sicher, ob wie ich das Problem hier einordnen soll, weil ich selbst nicht genau weiß, ob es jetzt an der verwendeten Engine von QWebView (Linux) liegt, oder an dem HTML-Code von Google. In dem HTML-Code liegt einfach nur ein iframe, welches auf eine Url von Google mit den entsprechenden Parametern navigiert.

Ich verwende die QT-Version 4.8 (Linux)

Vielleicht hat ja jemand von euch schon mal ein ähnliches Problem gehabt.
Vielen Dank im Voraus!

Antworten