0

在我的应用程序中,我有很多QLineEdit小部件。用户可以编辑它们。我观察到,如果我将文本添加到一个QLineEdit通过GUI& 然后如果它QLineEdit有光标然后如果我按下ctrl+z然后它撤消文本,因此其中没有文本。现在,如果我按代码设置文本,则按SetText("some text")方法undo不起作用ctrl+z。即使我undo通过代码仍然无法清除文本。问题是什么?我错过了什么吗?谢谢你。

4

1 回答 1

3

undo可能认为您设置的值SetText应该被视为默认起始值​​,不需要undoing。对我来说似乎是正常的行为。

这是SetText()定义:

此属性保存行编辑的文本。设置此属性会清除选择,清除撤消/重做历史,将光标移动到行尾并将修改的属性重置为 false。使用 setText() 插入文本时不会验证文本。文本被截断为 maxLength() 长度。默认情况下,此属性包含一个空字符串。调用 setText() 会将修改后的标志重置为 false。

也许如果你设置setModified ( bool )为 true,会为你解决这个问题

编辑:找到解决方法:insert(QString text)工作undo()得很好

于 2013-03-06T13:56:28.323 回答