【发布时间】:2011-08-16 14:31:29
【问题描述】:
我有 16 个QDoubleSpinBoxes,我想知道用户何时更改其中一个数据。
请注意,我不在乎哪一项已更改,我只需要知道其中一项已更改即可。
如果不写 16 个不同的 valueChanged() 信号/插槽,我怎么能做到这一点?是否可以将“通用”valueChanged() 连接到插槽?
非常感谢。
【问题讨论】:
标签: pyqt signals-slots
我有 16 个QDoubleSpinBoxes,我想知道用户何时更改其中一个数据。
请注意,我不在乎哪一项已更改,我只需要知道其中一项已更改即可。
如果不写 16 个不同的 valueChanged() 信号/插槽,我怎么能做到这一点?是否可以将“通用”valueChanged() 连接到插槽?
非常感谢。
【问题讨论】:
标签: pyqt signals-slots
您可以将任意数量的信号连接到同一个插槽。 (但确实需要单独连接 16 个信号。)
【讨论】:
你可以将所有信号连接到同一个slot,然后你可以通过QObject.sender方法获取sender。或者你最好看看QSignalMapper 类。
【讨论】:
您可以从您的 QSpinBox 中创建一个列表,并为此使用 for 循环:
for box in mySpinBoxes:
box.valueChanged.connect(self.myFunction)
【讨论】: