Почему синтаксис PyQt connect () настолько подробный?

Я просто изучаю PyQt и смотрю на механизм Signals and Slots. Я немного озадачен подробным синтаксисом. Почему у нас есть:

self.connect(dial, SIGNAL("valueChanged(int)"), spinbox.setValue) 

Я бы предпочел написать следующее:

 self.connect(dial.valueChanged, spinbox.setValue) 

Может ли кто-нибудь сказать мне, почему синтаксис connect () должен быть таким явным / подробным?

Вы можете использовать новые сигналы стиля PyQt, которые являются менее подробными:

 self.connect(dial, SIGNAL("valueChanged(int)"), spinbox.setValue) 

становится:

 dial.valueChanged.connect(spinbox.setValue) 

Ответ Лупера намного лучше, чем этот, но ради полноты …

Уродливый синтаксис «старого стиля» – это анахронизм из мира C++ – просто посмотрите на синтаксис, с которым должны работать те парни! Yucky …

Еще более короткий путь – назначить имя сигнала функции в аргументах ключевого слова конструктора, например QDial(valueChanged=spinbox.setValue) . PyQt автоматически подключит сигнал spinbox.setValue() к spinbox.setValue() .