Я пытаюсь изучить PyQt
от rapid gui programming with python and qt
и в настоящее время учится Signals
и Slots
.PyQt подключить СИГНАЛ к нескольким SLOT
Ниже приведен краткий фрагмент моего кода:
self.connect(self.dial, SIGNAL("valueChanged(int)"),self.spinbox.setValue) #1
self.connect(self.dial, SIGNAL("valueChanged(int)"),self.getValue_dial) #2
self.connect(self.spinbox, SIGNAL("valueChanged(int)"),self.dial.setValue)
self.connect(self.spinbox, SIGNAL("valueChanged(int)"),self.getValue_spinbox)
def getValue_dial(self):
print self.dial.value()
def getValue_spinbox(self):
print self.dial.value()
То, что я пытаюсь достичь здесь называют 2
Слоты сразу, что это spinbox.setValue
и getValue_dial
для dial
объекта, как только ValueChanged(int)
сигнал.
Приведенный выше код успешно выполняется без ошибок, а print
- соответствующие значения при их изменении.
Теперь мой вопрос в том, как это сделать, чтобы назвать несколько слотов для одного сигнала.?
Может ли вышеуказанные два утверждения (1 & 2) быть объединены в один оператор.
Вот ссылка для моего complete code.
Спасибо. Очень приятное объяснение – RanRag
ok Я понимаю, что когда значение набора изменяется, этот сигнал выдается с новым значением в качестве аргумента, но как мы можем получить доступ к этому значению непосредственно как переменную 'значение'. Я имею в виду, нам не нужны некоторые специальные вызовы для набора номера. Как мы можем получить доступ к нему только по имени переменной 'значение'. – RanRag
QDial наследует от QAbstractSlider. В [документации] (http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qabstractslider.html#valueChanged) вы можете видеть, что 'valueChanged' передает int при испускании и что int является значение ползунка. –