Problem mit QTextFragment
Verfasst: 30. August 2012 00:16
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
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:
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.
Gruß,
zygyzy
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
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:
Code: Alles auswählen
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
}
}
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.
Gruß,
zygyzy