在我的应用程序中,我有许多QLineEdit
个小部件。用户可以编辑它们。
我观察到如果我将文字添加到QLineEdit
到GUI
&然后,如果QLineEdit
有光标,那么如果按ctrl+z
,则撤消文本,使其中没有文字。
现在,如果我按SetText("some text")
按代码设置文本,则undo
方法无法使用ctrl+z
。即使我通过代码undo
仍然不清除文本。问题是什么?我错过了什么吗?
谢谢。
答案 0 :(得分:3)
undo
可能认为SetText
设置的值应被视为默认起始值,不需要undo
。对我来说似乎是正常的行为。
以下是SetText()
定义:
此属性包含行编辑的文本。 设置此属性将清除选择,清除撤消/重做历史记录,将光标移动到行的末尾并将modified属性重置为false。使用setText()插入时,不验证文本。 文本被截断为maxLength()长度。 默认情况下,此属性包含空字符串。 调用setText()会将修改后的标志重置为false。
也许如果您将setModified ( bool )
设置为true,则会为您解决此问题
编辑:
找到解决方法:insert(QString text)
可以与undo()
一起使用