Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Rain от Декабрь 28, 2009, 19:10



Название: QPlainTextEdit: переопределить клавиши
Отправлено: Rain от Декабрь 28, 2009, 19:10
Есть область для ввода текста в виде QPlainTextEdit.
Нужно реализовать следующее поведение:

1. Переход к новой строке осуществляется с помощью Ctrl + Enter.
2. Окончание редактирования (потеря фокуса) осуществляется по Enter.

Т.е. хочется иметь возможность кастомизировать эти действия (перевод строки и окончание редактирования).

Смотрю в сторону фильтрации QKeyEvent. С завершением редактирования все вобщем-то понятно. Достаточно
перехватить нажатие нужных клавиш. 

А вот как быть с переводом строки я не определился(не нашел, как с помощью интерфейса, который предоставляет
QPlainTextEdit можно эмулировать нажатие Enter). Есть идея попробовать залезть в документ, добавить в нужную позицию
символ перевода строки/возврата каретки, позиционировать курсор и обновить QPlainTextEdit, но это как-то слишком сложно
для такой казалось бы простой операции.

Никто не сталкивался с подобной проблемой?

Заранее спасибо за советы.



Название: Re: QPlainTextEdit: переопределить клавиши
Отправлено: SimpleSunny от Декабрь 28, 2009, 21:21
А разве void QPlainTextEdit::insertPlainText ( const QString & text ) не должно решить ваши проблемы? (Это я про ctrl + enter)


Название: Re: QPlainTextEdit: переопределить клавиши
Отправлено: Rain от Декабрь 29, 2009, 10:59
Хм... Действительно, решение плавало на поверхности, спасибо:) Надо было внимательнее почитать мануал.