具有两个LineEdits的循环依赖关系将文本相互设置

时间:2017-05-22 09:43:44

标签: qt qt-signals

我有两个QLineEdits相互连接,因此当用户在一个QLineEdit中输入文本时,另一个QLineEdit中的文本也会发生变化,反之亦然。

e.g。

connect(line_edit1, SIGNAL(textChanged()), line_edit2, SLOT(setText())
connect(line_edit2, SIGNAL(textChanged()), line_edit1, SLOT(setText())

问题是这会导致无限循环,因为每次设置文本时都会发出textChanged()信号。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

使用信号textEdited代替textChanged

它仅由用户操作根据文档触发: http://doc.qt.io/qt-5/qlineedit.html#textEdited 然后,您对setText()的呼叫将不会触发信号。