Название: не работает highlightblock в QSyntaxHighlighter... заработал Отправлено: Гурман от Июль 04, 2011, 17:12 не мудрствуя, сделал, как в фирменных примерах, и как везде рекомендуют
Код: void Highlighter::highlightBlock(const QString &text) QVector<HighRule> highlightRules; перед этим честно заполнен паттернами и форматами полутора сотен слов, даже не шаблонов, а именно целых слов напускаю это на живой текст, получаю его первую строку в text и дальше бред какой-то - несмотря на то, что первого же паттерна в тексте и близко нет, для него int index = expression.indexIn( text ); дает 0, и int length = expression.matchedLength(); тоже 0, из-за чего while( index >= 0 ) превращается в forever делал и чуть по-другому Код: void Highlighter::highlightBlock(const QString &text) но результат точно такой же причем везде рекомендуется именно этот код или его незначительные вариации, и вроде бы у людей это работает ну ладно, думаю, щаз... заменяю while( index >= 0 ) на while( index > 0 ) и все начинает тут же работать, но... разумеется если текст не начинается с самого начала строки дальше, само собой Код: void Highlighter::highlightBlock(const QString &text) и все получилось... но вот не понятно - неужели только у меня такой капканчик нашелся? причем в одном месте пишут, типа known issue, но решение не дают ибо это очевидный баг... |