QPlainTextEdit - вставка в стек отмены вручную
Я строю редактор кода с QPlainTextEdit
, По умолчанию, когда я набираю несколько слов в одной строке, а затем нажимаю "Отменить", вся строка удаляется. Я хочу нажать для отмены стека вручную для каждого символа, чтобы при нажатии кнопки отмены предыдущий символ удалялся. Тогда я мог бы реализовать захват только не-букв и т. Д., Чтобы он мог отменить один логический токен за раз. Как мне это сделать?
Я надеюсь, что вы, ребята, можете мне помочь. Заранее спасибо.
1 ответ
Решение
У меня это работает, переопределив keyPressEvent()
:
void CodeEditor::keyPressEvent(QKeyEvent *event)
{
QTextCursor cursor = textCursor();
cursor.beginEditBlock();
QPlainTextEdit::keyPressEvent(event);
cursor.endEditBlock();
setTextCursor(cursor);
}