【发布时间】:2011-12-22 06:32:02
【问题描述】:
我在一个配置小部件上有多个 QLineEdit 小部件。
当配置文本更改时,我想存储更新后的值(其中有几个,所以我不想在最后的一个函数调用中传递它们)。
我正在考虑将它们连接到一个插槽或通过QSignalMapper 连接到一个插槽。
但是我很难找到一种优雅的方式来区分 QLineEdits,我想知道哪个 QLineEdit 发出了信号 - 因为我在实现逻辑的处理程序对象中,我无法比较 @ 987654324@与原始对象。
我可以通过QSignalMapper 连接它们,以便我的处理程序获得int id 或QObject* 或QWidget* 对发出信号的实际小部件的引用,以便我可以轻松获得新文本,但我会希望能够打开一些 id 以在内部更新正确的设置。
是否有任何优雅的方式来标记或标记 Qt 对象或小部件?
【问题讨论】:
-
我不明白你为什么不能使用
sender()- 你能澄清一下吗? -
如果事件在模型中处理,它没有对原始对象的引用,所以我无法比较
sender()是我的serverLineEdit还是其他小部件 - 如果能够获取一些我可以检查的 ID/标签/标签(而不是objectName()...)。但也许我做得不对......当按下apply按钮时,我可以将所有值发送给模型......但我正在寻找更优雅的东西