MagicEngine использует сигналы для реализации событий.
Сигнал генерируется в ответ на некоторое событие, он несет в себе информацию об этом событии. Слот это функция, которая вызывается в ответ на определнный сигнал.
Для сигналов и слотов в движке MagicEngine были выставлены следующие требования:
- Сигналы ничего не знают о слотах в которые они отправляются
- Сигналы несут в себе некоторые обобщенные данные
- Слот знает какие данные он хочет получить от сигнала
- Слот незнает кто отправил сигнал
- Допускаются множественные соединения (сигнал может быть присоединен к разным слотам, и к 1 слоту может быть прикреплено несколько сигналов)
- Сигналы и слоты имеют имена.