Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: kuku от Январь 14, 2010, 02:19



Название: как из QTextEdit считывать посимвольно
Отправлено: kuku от Январь 14, 2010, 02:19
я знаю вопрос чайника, но для меня реальная проблема. :'( Как из QTextEdit доставать текст посимвольно с возможностью двигать курсор как вперед так и назад. И как сравнивать после этого со словом каким-либо или символом??? Помогите ПЛИЗ!!!


Название: Re: как из QTextEdit считывать посимвольно
Отправлено: Akaiten от Январь 14, 2010, 13:10
Переместить курсор можно, используя метод QTextEdit::moveCursor (http://doc.trolltech.com/4.6/qtextedit.html#moveCursor)
Код:
 void QTextEdit::moveCursor ( QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor )

Например, на один символ вперёд
Код:
textEdit->moveCusros(QTextCursor::NextCharacter)
или назад
Код:
textEdit->moveCusros(QTextCursor::PreviousCharacter)

Также можно двигать курсор на слово вперёд/назад, на строку вверх/вниз и т.п. (см. QTextCursor::MoveOperation (http://doc.trolltech.com/4.6/qtextcursor.html#MoveOperation-enum) enum)

Доставать текст посимвольно можно различными способами. Например, символ находящийся после курсора (включая служебные символы, такие как перевод строки и т.п.) можно получить так
Код:
textEdit->document()->characterAt(textEdit->textCursor().position())

А конкретно для чего надо посимвольно?


Название: Re: как из QTextEdit считывать посимвольно
Отправлено: kuku от Январь 14, 2010, 15:07
Переместить курсор можно, используя метод QTextEdit::moveCursor (http://doc.trolltech.com/4.6/qtextedit.html#moveCursor)
Код:
 void QTextEdit::moveCursor ( QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor )

Например, на один символ вперёд
Код:
textEdit->moveCusros(QTextCursor::NextCharacter)
или назад
Код:
textEdit->moveCusros(QTextCursor::PreviousCharacter)

Также можно двигать курсор на слово вперёд/назад, на строку вверх/вниз и т.п. (см. QTextCursor::MoveOperation (http://doc.trolltech.com/4.6/qtextcursor.html#MoveOperation-enum) enum)

Доставать текст посимвольно можно различными способами. Например, символ находящийся после курсора (включая служебные символы, такие как перевод строки и т.п.) можно получить так
Код:
textEdit->document()->characterAt(textEdit->textCursor().position())

А конкретно для чего надо посимвольно?

Спасибо! Надо просто прикрутить подсветку. именно сканируя чтобы сократить время обработки.
сканируя-найти начало функции(), вернуться, занести имя функции, тип, входные данные, тело в отдельные столбцы в таблице.
 


Название: Re: как из QTextEdit считывать посимвольно
Отправлено: kuku от Январь 14, 2010, 15:09
поможите пожалуйста!


Название: Re: как из QTextEdit считывать посимвольно
Отправлено: Павел_F. от Январь 14, 2010, 15:57
Думаю вам стоит посмотреть Syntax Highlighter Example в документации.


Название: Re: как из QTextEdit считывать посимвольно
Отправлено: kuku от Январь 14, 2010, 16:11
Да я уже прикрутил Highligter, но мне еще и нужна детальная обработка конструкций языка. А метод который они предлагают, имеет много недочетов, и займет много процессорного времени.


Название: Re: как из QTextEdit считывать посимвольно
Отправлено: kuku от Январь 15, 2010, 02:04
ПРоблема решена. Отдельное СПАСИБО Akaiten!!! ;)