[QT] Problem mit QTextFragment
-
Hallo,
ich habe einen QTextEdit und einen QSyntaxHighlighter genommen um einen Teil einer Textzeile in eben diesem Edit farblich zu verändern (Font), z.B.:
"rotblau" (<- "rot" ist rot gefärbt, "blau" ist blau gefärbt)
Nun möchte ich mir diese Zeile zurückholen, und zwar ist mir hierbei wichtig klar zwischen den roten und den blauen Buchstaben unterscheiden zu können.
Laut Qt-Manual macht man das folgendermaßen:QTextBlock currentBlock = mytextEdit->document()->findBlockByLineNumber(0); //erste Zeile QTextBlock::iterator it; for (it = doc->begin().begin(); !(it.atEnd()); ++it) { QTextFragment currentFragment = it.fragment(); if (currentFragment.isValid()) { QTextCharFormat f = currentFragment.charFormat(); //Font des Fragments QString txt = currentFragment.text(); //Text des Fragments } }
Normalerweise sollte ich jetzt zwei QTextFragmente zurückgeliefert bekommen, eins für "rot" und eins für "blau", klar getrennt durch die unterschiedlichen Fonts (wie hier).
Aber ich bekomme nur ein Fragment "rotblau" zurück, und der entsprechende QTextCharFormat scheint obendrein leer zu sein.Hat jemand eine Erklärung? Ich nutze Qt 4.7.4 + VS2010.
Danke.