Pyqt 多个信号,一个插槽

发布于 2024-11-04 09:35:18 字数 203 浏览 1 评论 0原文

我有 16 个 QDoubleSpinBox,我想知道用户何时更改其中一个中的数据。 请注意,我不在乎哪一项已更改,我只需要知道其中一项已更改。

如何在不编写 16 个不同的 valueChanged() 信号/槽的情况下做到这一点?是否可以将“通用”valueChanged() 连接到插槽?

非常感谢。

I have 16 QDoubleSpinBoxes and I want to know when the user change a data in one of that.
Note that I don't care which one has been changed I only need to know that one of them has changed.

How can I do it without writing 16 different valueChanged() signals/slot? Is it possible to connect a "generic" valueChanged() to a slot?

Thank you very much.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凉世弥音 2024-11-11 09:35:18

您可以从 QSpinBox 中创建一个列表,并使用 for 循环:

for box in mySpinBoxes:
    box.valueChanged.connect(self.myFunction)

You can make a list from your QSpinBox's, and use a for loop for that:

for box in mySpinBoxes:
    box.valueChanged.connect(self.myFunction)
地狱即天堂 2024-11-11 09:35:18

您可以将任意数量的信号连接到同一个插槽。 (但实际上您需要单独连接 16 个信号。)

You can connect as many signals as you want to the same slot. (But indeed you will need to connect the 16 signals individually.)

记忆之渊 2024-11-11 09:35:18

您可以将所有信号连接到同一个插槽,然后可以使用QObject.sender方法获取发送者。或者您最好查看 QSignalMapper 类。

You can connect all signals to the same slot, and then you can get the sender with the QObject.sender method. Or you better look at the QSignalMapper class.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文