Название: Как спозиционироваться на QTextCursor? Отправлено: Hordi от Декабрь 18, 2008, 16:49 Приветствую
Использую QPlainTextEdit (Qt-4.4.3). Задача - выделить цветом определенные слова и спозиционироваться на первое найденное слово. Делаю так, так написано ниже. Все как бы работает, но после N-ой попытки весь текст становится зеленым и таким уже и остается... Проблема в позиционировани, т.е. если убрать строку _pEdit->setTextCursor(tc_first) то все работает (кроме позиционирования)... Помогите плз... Код:
Название: Re: Как спозиционироваться на QTextCursor? Отправлено: panAlexey от Декабрь 19, 2008, 00:30 я бы воспользовался лучше сцинтилой.
либо гораздо более зрелая чем плаин текст от кт. Название: Re: Как спозиционироваться на QTextCursor? Отправлено: Mikhail от Декабрь 19, 2008, 10:00 Для выделения цветом рекомендую использовать QSyntaxHighlighter.
Этот класс идеально выполнит задачу. panAlexey Используйте на здоровье сцинтилу. Тащите в проект кучу дополнительного кода. А другие пусть используют Qt и его "слабый класс" QPlainTextEdit. Название: Re: Как спозиционироваться на QTextCursor? Отправлено: Hordi от Декабрь 19, 2008, 10:29 У меня на весь текст с десяток выделений всего найдется, поэтому чем выделять - особо не принципиально, хотя ща попробую...
Название: Re: Как спозиционироваться на QTextCursor? Отправлено: panAlexey от Декабрь 19, 2008, 11:13 panAlexey я не про слабость говорил, а про зрелость. У QPlainTextEdit возраст грудного младенца, Используйте на здоровье сцинтилу. Тащите в проект кучу дополнительного кода. А другие пусть используют Qt и его "слабый класс" QPlainTextEdit. А Scintill-е уже 10 лет... Как думаешь что стабильнее и проработанее? А насчет "Тащите в проект кучу дополнительного кода" - решение в любом случае индивидуально, не надо кря, а надо прикинуть +/-. Например минусом является то, что класс недавний, т.е. на любой Qt4x уже не будет работать - надо обновляться... Название: Re: Как спозиционироваться на QTextCursor? Отправлено: Mikhail от Декабрь 19, 2008, 11:41 С помощью младенческих классов Qt, сделан qPEditor - http://www.anyqsoft.com/qPEditor?Lang=Rus (http://www.anyqsoft.com/qPEditor?Lang=Rus)
Наверно, существенно хуже скинтиллы, но на чистом Qt. Минусом использования стороннего кода, иногда является необходимость его сущственно допиливать под себя. Название: Re: Как спозиционироваться на QTextCursor? Отправлено: panAlexey от Декабрь 19, 2008, 12:20 С помощью младенческих классов Qt, сделан qPEditor - http://www.anyqsoft.com/qPEditor?Lang=Rus (http://www.anyqsoft.com/qPEditor?Lang=Rus) qPEditor-ом не пользуюсь, равно как и ИДЕ.Наверно, существенно хуже скинтиллы, но на чистом Qt. Минусом использования стороннего кода, иногда является необходимость его сущственно допиливать под себя. еще раз повторю, что выбор компонент - вопрос стратегический. споры подобного уровня решаются рейтингами потребительских предпочтений. а мнение программистов практически всегда пристрастно. Название: Re: Как спозиционироваться на QTextCursor? Отправлено: Mikhail от Декабрь 19, 2008, 12:51 qPEditor-ом не пользуюсь, равно как и ИДЕ. еще раз повторю, что выбор компонент - вопрос стратегический. споры подобного уровня решаются рейтингами потребительских предпочтений. а мнение программистов практически всегда пристрастно. Высекаю нетленку зубилом на камне. Ослепну, но очки не надену. ( сказал panAlexey ). Хотелось бы посмотреть на предмет вашей гордости( ПО на Qt в исходниках) , на котором мы все будем учиться. Название: Re: Как спозиционироваться на QTextCursor? Отправлено: ритт от Декабрь 19, 2008, 13:31 при позиционировании на найденном слове должно сохраняться выделение слова или требуется просто стать перед первым символом слова?
попробуй поменять местами tc.setCharFormat(f); и tc_first = tc; зы. опционально: QTextCursor::mergeCharFormat и доп.возможность поиска по QTextDocument::FindWholeWords |