我有三个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)
我需要更改什么来设置正确的值?
答案 0 :(得分:1)
connect
看起来就像你典型的回调注册功能。它期望得到一个函数或可调用,但是你传递的是setInterval
的返回值,即None
。
如果您希望单选按钮在选中时调用setInterval
,则需要创建一个调用setInterval
的函数,并将其作为参数传递给connect
。最简单的方法是使用lambda。
self.radioButton_1s.clicked.connect(lambda *args: self.setInterval(1))