Pyqt несколько сигналов, один слот - PullRequest
0 голосов
/ 02 мая 2011

У меня 16 QDoubleSpinBoxes, и я хочу знать, когда пользователь изменит данные в одном из них.Обратите внимание, что мне все равно, какой из них был изменен, мне нужно только знать, что один из них изменился.

Как я могу сделать это без записи 16 различных valueChanged() сигналов / слотов?Можно ли подключить «универсальный» valueChanged() к слоту?

Большое спасибо.

Ответы [ 3 ]

0 голосов
/ 02 мая 2011

Вы можете подключить все сигналы к одному и тому же слоту, а затем вы можете получить отправителя методом QObject.sender. Или лучше взгляните на класс QSignalMapper.

0 голосов
/ 02 мая 2011

Вы можете создать список из вашего QSpinBox и использовать для этого цикл for:

for box in mySpinBoxes:
    box.valueChanged.connect(self.myFunction)
0 голосов
/ 02 мая 2011

Вы можете подключить столько сигналов, сколько хотите, к одному и тому же слоту. (Но на самом деле вам нужно будет подключить 16 сигналов по отдельности.)

...