Сигналы и слоты


Сигналы и слоты

Сигналы и слоты — это конструкция языка программирования, используемая в Qt, которая позволяет реализовать шаблон «наблюдатель», минимизируя написание повторяющегося кода. Концепция заключается в том, что компонент (часто виджет) может посылать сигналы, содержащие информацию о событии (например: был выделен текст «слово», была открыта вторая вкладка). В свою очередь другие компоненты могут принимать эти сигналы посредством специальных функций — слотов. Система сигналов и слотов хорошо подходит для описания Графического интерфейса пользователя. Также механизм сигналов/слотов может быть применён для асинхронного ввода/вывода (включая сокеты, pipe, устройства с последовательным интерфейсом, др.) или уведомления о событиях. В библиотеке Qt благодаря Метаобъектному компилятору отпадает необходимость писать код регистрации/отрегистрации/вызова, так как эти шаблонные участки кода генерируются автоматически.

Альтернативные подходы

Существуют реализации системы сигналов/слотов на основе шаблонов C++. Их преимущество в отсутствии необходимости использовать Метаобъектный компилятор, как это реализовано в Qt.

Примеры:

В языке программирования C# есть похожая конструкция с другой терминологией и синтаксисом: события играют роль сигналов, а делегаты — роль слотов. Другая реализация сигналов существует для ActionScript 3.0, основан на событиях из C# и сигналов/слотов из Qt. Дополнительно, делегатом может быть локальная переменная или указатель на функцию, в то время как в Qt слотом может быть только специально объявленный метод класса. Из-за ограничений языка, нет общей реализации для ANSI C. Но существует ограниченный вариант — c-sigslot.

Ссылки



Wikimedia Foundation. 2010.

Смотреть что такое "Сигналы и слоты" в других словарях:

  • Qt — У этого термина существуют и другие значения, см. QT. Qt …   Википедия

  • KDE — Software Compilation …   Википедия

  • PyQt — PyQt …   Википедия

  • Qmake — это утилита из состава Qt, которая помогает облегчить процесс сборки приложения на разных платформах. qmake автоматически генерирует make файлы, основываясь на информации в файлах проекта(*.pro). (информация из руководства) qmake – программное… …   Википедия

  • Qt Creator — Qt Creator …   Википедия

  • Quanta Plus — 3.3.0 Тип Редактор HTML Разработчик …   Википедия

  • PySide — Релиз: 1.1.2 (11 сентября 2012) Лицензия LGPL Сайт: Официальный сайт PySide  привязка языка Pytho …   Википедия

  • Qt Development Frameworks — Qt Software Тип …   Википедия

  • MeeGo — Разработчик MeeGo Technical Steering Group (TSG) под эгидой The Linux Foundation [1] Семейст …   Википедия

  • Phonon — Тип мультимедийный фреймворк Разработчики Маттиас Крец, команда разработчиков Phonon Написана на C++ Операционная система кросс платформенное программное обеспечение …   Википедия