Мне пока не нравятся ответы. - Позвольте мне сосредоточиться на этой части вопроса:
Являются ли события абстракцией сигнала / слотов?
Короткий ответ: нет. Длинный ответ поднимает «лучший» вопрос: как связаны сигналы и события?
Простой основной цикл (например, Qt) обычно «застревает» в вызове select () операционной системы. Этот вызов переводит приложение в спящий режим, в то время как оно передает ядру кучу сокетов или файлов или что-то еще, запрашивая: если что-то изменится, пусть вызов select () вернется. - А ядро, как повелитель мира, знает, когда это произойдет.
Результатом этого вызова select () может быть: новые данные в сокете, подключенном к X11, поступил пакет с портом UDP, который мы прослушиваем, и т. Д. - Этот материал не является ни сигналом Qt, ни событие Qt, и главный цикл Qt решает сам, превращает ли он свежие данные в одно, другое или игнорирует их.
Qt может вызывать метод (или несколько), например keyPressEvent (), эффективно превращая его в событие Qt. Или Qt испускает сигнал, который фактически просматривает все функции, зарегистрированные для этого сигнала, и вызывает их одну за другой.
Здесь видно одно различие между этими двумя понятиями: слот не имеет права голоса, будут ли вызваны другие слоты, зарегистрированные для этого сигнала, или нет. - События больше похожи на цепочку, и обработчик событий решает, прерывает ли она эту цепочку или нет. В этом отношении сигналы выглядят как звезда или дерево.
Событие может сработать или полностью превратиться в сигнал (просто сгенерировать его и не вызывать «super ()»). Сигнал можно превратить в событие (вызвать обработчик события).
Что абстрагирует, что зависит от случая: сигнал clicked () абстрагирует события мыши (кнопка перемещается вниз и вверх, не слишком перемещаясь). События клавиатуры - это абстракции с более низких уровней (такие вещи, как 果 или é - несколько нажатий клавиш в моей системе).
Возможно, focusInEvent () является примером обратного: он может использовать (и, следовательно, абстрагировать) сигнал clicked (), но я не знаю, действительно ли он используется.