Problem mit QTextFragment

Alles rund um die Programmierung mit Qt
Antworten
Zygyzy
Beiträge: 2
Registriert: 29. August 2012 18:43

Problem mit QTextFragment

Beitrag von Zygyzy »

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:

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
    }
}
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
Antworten