[PySide] QWebKit stellt inline-svg unter windows nicht dar

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Leviathan
User
Beiträge: 2
Registriert: Montag 27. Februar 2012, 14:40

Hallo,

ich nutze qwebkit, um mittels render() ein pdf-Datei zu erzeugen. Bislang funktioniert das auch ganz gut. An einer stelle wird in den per setHtml() (QMainFrame) eingefügten html-Code auch eine inline SVG-Grafik eingebunden. Selbige wird unter Linux auch korrekt dargestellt. Erstelle ich das PDF aber unter windows, erscheint an der stelle der Grafik nur "image/svg+xml".

Ich dachte, daß dies möglicherweise an der Verwendung von setHtml() anstelle von setContent() liegt. Damit kam ich aber überhaupt nicht weiter, denn der html-Code liegt mir als unicode string vor, und selbigen konnte ich nicht in ein QByteArray umwandeln, um ihn mittels setContent() zu laden.

Kann mir jemand helfen, die html-Seite einschließlich der inline svg-Grafik sowohl unter Linux wie auch unter Windows darzustellen?

Ich verwende Python 2.7 mit PySide 1.0.6.
Leviathan
User
Beiträge: 2
Registriert: Montag 27. Februar 2012, 14:40

Ich habe inzwischen eine Lösung zu diesem Problem gefunden:

setContent() erwartet ein QBytearray, selbiges erhält man mittels .encode eines unicode-Strings.
Damit konnte ich mich von setHtml() verabschieden und setContent() nutzen.

Der wirkliche Fehler aber wahr wohl, daß ich bei den svg-Grafiken den <?xml ... ?>-Header nicht entfernt hatte.
Antworten