我有一本字典,它的键是我的 PyQT 界面中所有表盘的名称。与这些键关联的值是与需要传递给处理函数的每个刻度盘相关联的某些数值(以确定移动了哪个刻度盘),以及该刻度盘的新值。
我已经使用 functools.partial 为每个数值创建了处理函数的不同实例,但是“valueChanged”信号返回一个整数,我也不知道如何将它传递给偏函数。以下似乎不起作用,因为 dialChanged 函数最终从未被调用:
for dial, cc, in dialDict.iteritems():
getattr(self.ui, dial).setRange(0,127)
getattr(self.ui, dial).valueChanged.connect(
lambda value: partial(self.windowHandler.dialChanged,
mainWindowInstance=self,
cc=cc,
value=value))
我认为问题与在 for 循环和范围内使用 lambda 函数有关,但我不确定如何将 valueChanged 信号的返回值传递到由 partial 创建的插槽中。任何建议,将不胜感激。