Похожие презентации:
презаqt
1. Сигналы и слоты в Qt
Выполнили студенты 2 курса группы ПМИ-241, Дандерфер М. И.,Дробот М.А.
2. Введение
Сигналы и слоты — это центральный механизм Qt для связи междуобъектами (виджетами, потоками, данными). Он заменяет
классические коллбэки и обеспечивает:
• Гибкость: объекты ничего не знают друг о друге
• Типобезопасность: проверка типов во время компиляции
• Удобство: декларативное связывание через connect()
3. Обработчики событий
Это базовый способ реакции на действия пользователя (клик,нажатие клавиши) или системные события (таймер, закрытие
окна).
• Слот on_pushButton_clicke
d() автоматически связывается с
кнопкой, если имя соответствует
соглашению on_<объект>_<си
гнал>().
• Это частный
случай использования слотов,
автоматически генерируемый Qt
Designer.
4. Обработка сигналов при помощи слотов
Основной механизм:• Сигнал (Signal) — это сообщение, которое испускает объект при
наступлении некоторого события (например, clicked()).
• Слот (Slot) — это функция-член класса, которая может быть
вызвана в ответ на определённый сигнал.
5. Связывание нескольких сигналов с одним слотом и наоборот
Несколько сигналов → один слот:• Полезно, когда одно действие
должно выполняться по разным
причинам.
Один сигнал → несколько слотов:
• Сигнал может запускать несколько
различных действий.
6. Передача данных через сигналы
Сигналы могут передаватьпараметры, которые
автоматически получаются
слотами.
7. Пользовательские сигналы
Вы можете создавать свои собственныесигналы в классах, наследующих
от QObject.
Требования:
• Класс должен иметь макрос Q_OBJECT
• Сигналы объявляются в
разделе signals:
• Сигналы не реализуются (не имеют тела
функции)
• Испускаются с помощью ключевого
слова emit
8. Итог
Ключевые моменты:• Сигналы и слоты — основа event-driven архитектуры в Qt.
• Связь устанавливается через connect(), может быть гибкой
(один-ко-многим, многие-к-одному).
• Через сигналы удобно и безопасно передавать данные.
• Механизм расширяем: вы можете создавать собственные сигналы
и слоты.
• Современный синтаксис connect предпочтительнее из-за
проверки типов на этапе компиляции