当发出textEdited()
信号时,可能是因为用户键入/粘贴/删除/替换了某些文本,或者可能是撤消操作(用户按下了Ctrl + Z,或者单击了撤消)从上下文菜单中。)
我需要以某种方式区分它们。有没有办法在执行撤销操作时得到通知 - 订阅信号,也许会捕获一个事件?我自己在QLineEdit文档中找不到任何内容,但我可能错过了它。
或者有没有办法简单地检查是否已执行撤消 - 可能是一个标志,还是有办法检查撤消堆栈的大小是多少?这样我可以将它与之前的大小进行比较,如果它已经减少了,那么我就知道它是一个撤销。
如果你想知道为什么我需要这个,我试图实现Editable multi-color QLineEdit,我需要这个,以便在撤消操作时恢复以前的颜色。
答案 0 :(得分:0)
QLineEdit
专为纯文本编辑而设计。它不是为支持高级格式设计的。您应该使用QTextEdit
代替。互联网上有a lot of samples,如何做到这一点。
如果您想练习创建自定义文本编辑器,那么您应该自己实现必要的接口(方法,信号)。