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))
我有三个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))