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