Python3, pyqt5: 在 radioButton 连接中设置值时出现 NoneType 错误

Python3, pyqt5: NoneType error when setting value in radioButton connect

我有三个radioButtons,它们应该select preselect 时间间隔1s 10s 和任何。我创建了以下连接,但收到错误消息,指出参数 1 具有意外类型 'NoneType'

self.radioButton_1s.clicked.connect(self.setInterval(1))
self.radioButton_10s.clicked.connect(self.setInterval(10))
self.radioButton_any.clicked.connect(self.setInterval(0))

像 self.setInterval(int(1)) 这样的 int-cast 并没有什么不同。

调用的方法如下。我知道数学并不严密,但这不是问题所在。通常,doubleSpinBox 读取的值类似于 0.25 0.1 或类似值。

@QtCore.pyqtSlot()
def setInterval(self,i):

    if i == 1:
        n = 1/self.doubleSpinBox_TimeIndexStep.value() #TODO: use math.floor/ceiling to geht integers
        self.spinBox_CopyInterval.setEnabled
        self.spinBox_CopyInterval.setValue(n)
    elif i == 10:
        n = 10/self.doubleSpinBox_TimeIndexStep.value()
        self.spinBox_CopyInterval.setEnabled
        self.spinBox_CopyInterval.setValue(n)

我必须更改什么才能设置正确的值?

connect 在我看来就像典型的回调注册函数。它期望获得一个函数或可调用函数,但您传递的是 setInterval 的 return 值,即 None.

如果您希望单选按钮在被选中时调用 setInterval,您需要创建一个函数来调用 setInterval,并将其作为参数传递给 connect反而。最短的方法是使用 lambda。

self.radioButton_1s.clicked.connect(lambda *args: self.setInterval(1))