Qt. Событийная модель: слоты и сигналы. Автоматическое и ручное связывание.Пример нажатия на кнопку
В Qt все построено на объектах, главным базовым классом является QObject. Все классы, имеющие сигналы и слоты в Qt унаследованы от него. При множественном наследовании, если в иерархии планируется наличие класса QObject, его имя должно стоять первым в списке базовых классов, иначе метаобъектный компилятор Qt moc (Meta object compiler) будет ругаться.
QObject содержит в себе поддержку сигналов и слотов.
Механизм сигналов и слотов полностью замещает функции обратного вызова, при этом являясь очень гибкой и объектно-ориентированной моделью.
В Qt используется событийная модель - сигналы и слоты.
Сигнал вырабатывается когда происходит определенное событие.
Слот - это функция, которая вызывается в ответ на определенный сигнал. Виджеты Qt имеют много предопределенных сигналов и слотов, но мы всегда можем сделать дочерний класс и добавить наши сигналы и слоты в нем.
Сигналы и слоты слабо связаны.
Класс, который вырабатывает сигнал не знает и не заботится о том, какие слоты его получат. Механизм сигналов и слотов Qt гарантирует, что если мы подключим сигнал к слоту, слот будет вызван с параметрами сигнала в нужное время.
Last updated