logo
ООП 2012

46) Сигналы, слоты и события Qt.

Ключевым механизмом взаимодействия объектов в Qt являются сигналы и слоты.

Каждый объект, интегрированный в систему управления Qt, т.е. описанный как Q_OBJECT, может иметь типизированные слоты, обеспечивающие прием и обработку типизированных сигналов от других объектов, и собственные сигналы, прием которых могут осуществлять другие объекты. Связь между сигналами и слотами конкретных объектов устанавливается посредством функции connect(…)

Декларация сигналов и слотов осуществляется в теле класса с помощью ключевых слов signals и slots, воспринимаемых компилятором moc. Если необходимо предотвратить использование указанных ключевых слов, встречающихся в других библиотеках, то вместо них используют ключевые слова Q_SIGNALS, Q_SLOTS.

По правилам Qt один слот может принимать несколько сигналов, а один сигнал транслироваться на несколько слотов. Причем во взаимодействии участвуют не классы, а конкретные объекты, поэтому схема передачи сигналов к слотам может быть в любой момент динамически изменена.