Вы должны проверить основную документацию по этой ссылке .
Внутренняя система немного сложнее, но в целом она соответствует схеме наблюдателя. Этот механизм позволяет обнаруживать пользовательское действие или изменение состояния и реагировать на это действие.
Низкоуровневые взаимодействия, такие как обновление экрана, осуществляются через Систему событий
В Qt события - это объекты, производные от абстрактного класса QEvent, которые представляют вещи, которые произошли либо внутри приложения, либо в результате внешней активности, о которой приложение должно знать. События могут быть получены и обработаны любым экземпляром подкласса QObject, но они особенно актуальны для виджетов. Этот документ описывает, как события доставляются и обрабатываются в типичном приложении.
Итак, что касается процесса отображения, есть выделенное событие. Объект QWidget обрабатывает / подписывается на PaintEvent, см. QWidget::paintEvent
.
Этот обработчик событий может быть переопределён в подклассе для получения событий рисования, переданных в событии. Событие рисования - это запрос на перерисовку всего или части виджета.
Когда вы звоните, QLineEdit::setText()
, виджет будет перерисован при следующем запуске события дисплея, основываясь на конфигурации ОС, частоте обновления и т. Д.
Для взаимодействий высокого уровня Qt использует похожий шаблон, основанный на механизме сигнал / слот :
Шаблон наблюдателя используется везде в приложениях с графическим интерфейсом и часто приводит к некоторому шаблонному коду. Qt был создан с целью удалить этот шаблонный код и обеспечить хороший и чистый синтаксис, а механизм сигнала и слотов - это ответ.