在radioButton connect中设置值时,Python3,pyqt5:NoneType错误

时间:2015-01-23 18:55:08

标签: python-3.x pyqt5

我有三个radioButtons,它们应选择预选时间间隔1s 10s和any。我创建了以下连接,但是我收到错误消息,即参数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)

我需要更改什么来设置正确的值?

1 个答案:

答案 0 :(得分:1)

connect看起来就像你典型的回调注册功能。它期望得到一个函数或可调用,但是你传递的是setInterval的返回值,即None

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

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