【问题标题】:Pyqt multiple signlas, one slotPyqt 多个信号,一个插槽
【发布时间】:2011-08-16 14:31:29
【问题描述】:

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

如果不写 16 个不同的 valueChanged() 信号/插槽,我怎么能做到这一点?是否可以将“通用”valueChanged() 连接到插槽?

非常感谢。

【问题讨论】:

    标签: pyqt signals-slots


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你可以将所有信号连接到同一个slot,然后你可以通过QObject.sender方法获取sender。或者你最好看看QSignalMapper 类。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2012-07-04
          • 2012-07-13
          • 1970-01-01
          • 2010-11-07
          • 2018-02-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多