2013-03-06 22 views
0

在我的應用程序中,我有許多QLineEdit小部件。用戶可以編輯它們。 我注意到,如果我將文本添加到QLineEditGUI &那麼如果該QLineEdit有光標,那麼如果我按ctrl+z,那麼它將撤消文本,以便其中沒有文本。 現在,如果我通過SetText("some text")代碼設置文本,然後undo不工作通過ctrl+z方法。即使我通過代碼undo仍然不清除文本。問題是什麼?我錯過了什麼嗎? 謝謝。QLineEdit無法在Qt中調用SetText()後撤消

回答

3

undo可能認爲您設置的值爲SetText應視爲默認開始值,即不需要undo ing。正常行爲,因爲它似乎對我來說。

這裏是SetText()定義:

這個屬性保存行編輯的文本。 設置此屬性將清除選擇內容,清除撤消/重做歷史記錄,將光標移動到行的末尾並將修改後的屬性重置爲false。使用setText()插入時,文本未經驗證。 該文本被截斷爲maxLength()長度。 默認情況下,此屬性包含一個空字符串。 調用setText()將修改標誌重置爲false。

或許,如果你設置setModified (bool)爲true,將解決這個問題爲您

編輯: 找到解決方法:insert(QString text)作品與undo()就好

+0

,但我想有撤消使QLineEdit的行爲與能力如果文本是通過GUI添加的! – 2013-03-06 13:57:48

+0

好的,謝謝我會盡力回覆你。但是因爲它清除了撤銷/重做內存,會調用撤消,清除文本? – 2013-03-06 14:14:09

+0

是的,我也發現。謝謝 – 2013-03-07 05:45:50