Seite 1 von 1

Daten aus QTextDocument

Verfasst: 15. Februar 2010 09:34
von GSoft
Hi Leute,

ich möchte mir ein RichText-Editor basteln, ich benötige eine Text-Komponente für eine meiner Anwendungen. Da ich bisher keine Text-Komponente gefunden habe die meinen Anforderungen erfüllt, möchte ich mir mein eigenes Control schreiben.

Dafür habe ich mir die Qt-RichText (QTextDocument) Dokumentation schon angeguckt und bin eigentlich der Meinung das man damit relativ viel machen kann und dies auch meinen Anforderungen genügen dürfte.

Ein Problem möchte ich aber schon geklärt wissen, bevor ich mich mit den Programmieren beginnen möchte.

Laut der Qt-RichText-Dokumentation wird intern eine "Baum"-Struktur als Format verwendet, was soweit auch ok/gut ist. Mein Problem ist allerdings wie komme ich an diese Daten/Struktur dran?

Der Hintergrund, wenn ich mit toHtml(), oder toPlainText() an den Inhalt dran komme und diese Sachen abspeicher und auch wenn ich den Text von HTML/PlainText lade, werden intern Konvertierungen durchgeführt die ggf. das Aussehen etc. des Dokuments verändern können.

Da ich die Daten binär und gezippt in eine Datei oder Datenbank schreiben möchte, wollte ich fragen ob einer von euch mir verraten kann wie ich an die interne Struktur/die Daten dran kommen kann? (ich wünschte mir von Qt eine data()-Funktion die ein QByteArray zurückliefert :D)

Hoffe und bitte um eure Hilfe.

Gruß
GSoft

Verfasst: 15. Februar 2010 17:13
von upsala
QTextBlock heist das Zauberwort.

Verfasst: 15. Februar 2010 19:50
von GSoft
und durch welche Methode komme ich an die Daten um die in einem Stream etc. Datenbankfeld (durch ein QByteArray) zu speichern?

Gruß
GSoft

Verfasst: 16. Februar 2010 15:52
von GSoft
Hi Leute,

nur damit ihr ungefähr wissen könnt wie weit ich schon bin.

Also ich könnte ja eine Klasse von QDataStream ableiten und für jeden Typ den in über Methoden aus QTextBlock bekommen kann (z. B. QTextList *, QTextLayout etc.) den Operator << überschreiben und in der Implementation diese Klassen soweit ausdrösseln bis nur noch bis char*, int etc. übrigbleiben und diese dann in den Stream schreiben.

Allerdings ist das ein nicht kleiner Aufwand, den ich gerne betreiben werden, wenn es keine alternative bzw. bessere Möglichkeit gibt. Wenn jemand eine Idee bzw. andere Möglichkeit kennt, würde ich mich sehr über euren Vorschlag/Anregung freuen.

Gruß
GSoft

Verfasst: 17. Februar 2010 09:05
von archer
Was ist denn mit QTextDocumentWriter?

Verfasst: 17. Februar 2010 18:33
von GSoft
Damit kann ich die daten als html, plain text und odf speichern, allerdings habe ich nachher keine Möglichkeit die Daten von odf etc. in das QTextDocument zu laden.

Gruß
GSoff

[edit]
Ok es ist möglich plain text und html in das TextDocument zu bekommen, allerdings ist das keine Option für mich, da einfach zuviel beim Laden/Konvertieren "verloren" geht.