我有两个QLineEdits相互连接,因此当用户在一个QLineEdit中输入文本时,另一个QLineEdit中的文本也会发生变化,反之亦然。
e.g。
connect(line_edit1, SIGNAL(textChanged()), line_edit2, SLOT(setText())
connect(line_edit2, SIGNAL(textChanged()), line_edit1, SLOT(setText())
问题是这会导致无限循环,因为每次设置文本时都会发出textChanged()信号。
我该如何解决这个问题?
答案 0 :(得分:1)
使用信号textEdited
代替textChanged
。
它仅由用户操作根据文档触发:
http://doc.qt.io/qt-5/qlineedit.html#textEdited
然后,您对setText()
的呼叫将不会触发信号。