Ich habe ein Wörterbuch, dessen Schlüssel die Namen aller Wählscheiben in meiner PyQT-Schnittstelle sind. Die Werte, die diesen Tasten zugeordnet sind, sind bestimmte numerische Werte, die jeder Wählscheibe zugeordnet sind, die an eine Handler-Funktion übergeben werden müssen (um festzustellen, welche Wählscheibe bewegt wurde), zusammen mit dem neuen Wert dieser Wählscheibe.Partiell verwenden, um Steckplätze für Signale mit Rückgabewerten in PyQt zu erstellen
Ich habe functools.partial verwendet, um eine andere Instanz der Handler-Funktion für jeden der numerischen Werte zu erstellen, aber das "valueChanged" -Signal gibt eine ganze Zahl zurück und ich bin mir nicht sicher, wie ich es an die partielle Funktion übergeben soll auch. Die folgende nicht zu funktionieren scheint, wie die dialChanged Funktion endet nie aufgerufen wird:
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))
denke ich, das Problem hat mit der Verwendung der Lambda-Funktion innerhalb der for-Schleife und Umfang zu tun, aber ich Ich bin mir nicht sicher, wie ich sonst den Rückgabewert des Signals valueChanged in den von partially erzeugten Slot überführen könnte. Irgendwelche Vorschläge würden geschätzt werden.
Was ist die Signatur von 'dialChanged'? –