Qt. Событийная модель: слоты и сигналы. Автоматическое и ручное связывание.Пример нажатия на кнопку

В Qt все построено на объектах, главным базовым классом является QObject. Все классы, имеющие сигналы и слоты в Qt унаследованы от него. При множественном наследовании, если в иерархии планируется наличие класса QObject, его имя должно стоять первым в списке базовых классов, иначе метаобъектный компилятор Qt moc (Meta object compiler) будет ругаться.

QObject содержит в себе поддержку сигналов и слотов.

Механизм сигналов и слотов полностью замещает функции обратного вызова, при этом являясь очень гибкой и объектно-ориентированной моделью.

В Qt используется событийная модель - сигналы и слоты.

Сигнал вырабатывается когда происходит определенное событие.

Слот - это функция, которая вызывается в ответ на определенный сигнал. Виджеты Qt имеют много предопределенных сигналов и слотов, но мы всегда можем сделать дочерний класс и добавить наши сигналы и слоты в нем.

Сигналы и слоты слабо связаны.

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

Last updated