2014-01-23 4 views
0

У меня есть несколько QDoubleSpinBoxes, и я хочу подключить их к одному слоту. Можно создать одну команду соединения для нескольких объектов? для примера, я хочу подключиться:Как подключить несколько спинбокс только с одной командой-связью?

doubleSpinBox_1 
doubleSpinBox_2 

к моей функции «бла». Есть ли какая-либо команда, например:

self."doubleSpinBox_1 **AND** _2".valueChanged.connect(self.bla) 

?

ответ

1

Попробуйте это:

for spin_id in range(1,3): 
    spinboxes = self.findChildren(QtGui.QDoubleSpinBox, "doubleSpinBox_%d"%spin_id) 
    if spinboxes: 
    spinboxes[0].valueChanged.connect(self.bla) 

Но этот код полезен, если у вас есть много spinboxes для подключения;)

2

В качестве альтернативы, вы можете использовать getattr:

for id in range(1,3): 
    spinbox = getattr(self, "doubleSpinBox_{}".format(id)) 
    spinbox.valueChanged.connect(self.mySlot) 
Смежные вопросы