Здравствуйте.
Пишу редактор кода с подсветкой синтаксиса, за основу взял стандартный пример QT4 из demos.
Все хорошо, но хочется добавить подсветку пользовательских классов (видел такое например в FlashDevelop). 
Сейчас сделал вот так:
//...........
QStringList ids;
//добавил классы приложения в базу
for (int i = 0; i < classes.size(); i++)
    {
        QString cid = file.addClassInDb(classes[i]);
        ids << cid;
    }
    lib.qMessageBox("", "before addClass");
    editor->highlighter->addClasses(ids); //добавил новые правила для SyntaxHighlighter
                            //ОДНАКО ЧТОБЫ НОВЫЕ СЛОВА ПОДСВЕТИЛИСЬ НАДО ОБНОВИТЬ ТЕКСТ 
                            //В TextEdit
    lib.qMessageBox("", "post addClass");
    QTextCursor cursor = editor->textCursor(); //получил позицию курсора
    int cpos = cursor.position();
   //Все бы ничего, но между вот этим сообщением
    lib.qMessageBox("", "before setText");
    editor->setPlainText(c);
  //и вот этим
    lib.qMessageBox("", "after setText");
//проходит около 2 секунд
    cursor.setPosition(cpos);
    editor->setTextCursor(cursor);
То есть после добавления правил подсветки синтаксиса, чтобы слова реально подсветились, я обновляю текст в QTextEdit. Если я этого не делаю слова подсвечиваются только после того как пользователь установит курсор на окончание требуемого слова и введет что нибудь, пробел например или интер. Однако выполнение editor->setPlainText(content)  занимает довольно много времени, может быть можно как-то еще решить проблему?