如何在没有焦点的情况下更新 QDataWidgetMapper 项目

mik*_*ike 5 c++ qt

我有几个 QLineEdit,每个 QLineEdit 通过它们自己的 QDataWidgetMapper 连接到一个 QStandardItemModel,以便它们都反映相同的值。

如果用户在一个 QLineEdit 中输入一个值,那么这非常有效 - 当 QLineEdit 失去焦点时,模型会更新并且所有其他 QLineEdit 显示相同的值。

但是,我想通过 QLineEdit::setText 设置一个 QLineEdit 中的值,这不会使 QLineEdit 失去焦点。我可以手动调用 QDataWidgetMapper 上的提交,但这需要设置对该映射器的访问权限,如果我可以帮助它,我宁愿避免它,因为它在另一个类中。

有没有办法在 QLineEdit 中设置文本,就像用户输入了文本一样,例如,以便 QDataWidgetMapper 提交?

mik*_*ike 5

这比我想象的要容易。当我设置映射器时,我可以将 QLineEdit 的 textChanged 信号连接到映射器的提交槽。