Проверьте, генерируется ли сигнал textEdited () из-за операции отмены в QLineEdit

0

Когда textEdited() сигнал textEdited(), это может быть либо из-за того, что пользователь набрал/вставил/удалил/заменил какой-либо текст, либо может быть операцией отмены (пользователь нажал Ctrl + Z или нажал кнопку "Отменить" из контекстного меню),

Мне нужно как-то различать их. Есть ли способ получить уведомление, когда выполняется операция отмены операции - подписаться на сигнал, возможно, поймать событие? Я сам ничего не нашел в документации QLineEdit, но, возможно, я пропустил это.

Или есть способ просто проверить, было ли выполнено Отменено - возможно, флаг, или есть способ проверить, что такое размер стека Undo? Таким образом, я мог бы сравнить его с предыдущим размером, и если бы он уменьшился, я бы знал, что это Отменить.

Если вы хотите знать, зачем мне это нужно, я пытаюсь реализовать Редактируемый многоцветный QLineEdit, и мне это нужно, чтобы восстановить предыдущие цвета в случае операции отмены.

  • 0
    Почему бы не использовать QTextEdit? Я думаю, что «отменить» - это то же юридическое действие, что и при редактировании текста.
  • 0
    Потому что мне нужен QLineEdit для моих целей. Если бы мне нужен многострочный виджет, я бы использовал QTextEdit. Что вы подразумеваете под «тем же иском»?
Показать ещё 1 комментарий
Теги:
qt
undo

1 ответ

0

QLineEdit предназначен для простого редактирования текста. Он не предназначен для поддержки расширенного форматирования. Вместо этого вы должны использовать QTextEdit. В Интернете есть много образцов, как это сделать.

Если вы хотите практиковать в создании пользовательских текстовых редакторов, вам необходимо реализовать необходимый интерфейс (методы, сигналы) самостоятельно.

  • 0
    Спасибо, но я действительно не могу использовать QTextEdit. Они разные, это все равно что сказать мне использовать QComboBox вместо QLineEdit. Кроме того, вы не пытаетесь ответить на мой вопрос. Я не спрашиваю, должен ли я использовать QTextEdit вместо QLineEdit, я спрашиваю, могу ли я проверить, произошла ли операция отмены в QLineEdit. Это мой вопрос.
  • 0
    Мой правильный ответ - ты не можешь. И я надеюсь, вы можете объяснить, почему вы не можете использовать QTextEdit? Это все равно что сказать «я хочу флажок, но не QCheckBox»
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню