Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt4]получение последнего символа из QTextEdit |
Автор: anatox91 6.6.2008, 14:45 | ||
вобщем есть такая проблема. Надо узнать последний символ введенный в QTextEdit. toPlainText() не подойдет, т.к. мне не нужен весь текст, и это будет неэффективно при работе с большим объемом текста. Пример:
в документации чет ниче похожего не нашел... у QTextCursor'a тоже вроде ниче нужного нема... заранее спасибо! |
Автор: Elfebet 6.6.2008, 15:23 |
Тебе нужен последний введенный символ или последний символ в тексте. если первое то keyPressEvent(QKeyEvent *keyEvent) и будет последний символ если второе тебе все равно прийдется делать toPlainText(), ведь чтобы найти последний символ для этого нужен текст, где искать, правильно? |
Автор: anatox91 6.6.2008, 15:26 |
Elfebet, да, я немного неправильно выразился, мне нужен последний символ в тексте, но получать через toPlainText() может быть не слишком быстро если текст большой... вот я почему и спрашиваю, мне нужен не весь текст, а только его последний символ, может как-то через QTextCursor можно это сделать... |
Автор: SABROG 6.6.2008, 15:30 |
Может быть тогда есть смысл посмотреть в сторону QDataWidgetMapper ? |
Автор: anatox91 6.6.2008, 16:41 |
насколько я понял это для model/view-представления, а мне нужно для QTextEdit ![]() вообще говоря, я хочу сделать фишку, которая есть во всех IDE(под С++) - когда вводится символ "{" или ":" и нажимается Enter, то курсор должен перескакивать не просто наследующую строку, а еще и под этим символом. Поэтому мне и показалось, что если для этого каждый раз делать банально toPlainText(), то это будет медленно работать, если объем текста большой... |
Автор: anatox91 6.6.2008, 17:46 | ||
вобщем, сделал так:
но сабж еще интересует |
Автор: Elfebet 6.6.2008, 18:08 |
а если просто запоминать, что нажата клава shift+[ или shift+; то это знак "{ или :" и если следующий символ идет Qt::Key_Return то выполняеш это дейсвие, иначе ниче не делаеш |
Автор: anatox91 6.6.2008, 19:28 |
Elfebet, мне кажется должен быть вариант покрасивее, может быть через QTextCursor... |
Автор: anatox91 7.6.2008, 12:40 | ||
всем спасибо, проблема решена через QTextBlock:
|