Метаобъектная система Qt
Метаобъектная система Qt
Одним из главных преимуществ средств разработки Qt является расширение языка С++ механизмом создания независимых компонентов программного обеспечения, которые можно соединять вместе, несмотря на то что они могут ничего не знать друг о друге.
Этот механизм называется метаобъектной системой, и он обеспечивает две основные служебные функции: взаимодействие сигналов и слотов и анализ внутреннего состояния приложения (introspection). Анализ внутреннего состояния необходим для реализации сигналов и слотов и позволяет прикладным программистам получать «метаинформацию» о подклассах QObject во время выполнения программы, включая список поддерживаемых объектом сигналов и слотов и имена их классов. Этот механизм также поддерживает свойства (для Qt Designer) и перевод текстовых значений (для интернационализации приложений), а также создает основу для системы сценариев в Qt (Qt Script for Applications — QSA).
В стандартном языке С++ не предусмотрена динамическая поддержка метаданных, необходимых системе метаобъектов Qt. В Qt эта проблема решена за счет применения специального инструментального средства компилятора moc, который просматривает определения классов с макросом Q_OBJECT и делает соответствующую информацию доступной функциям С++. Поскольку все функциональные возможности moc обеспечиваются только с помощью «чистого» С++, мета—объектная система Qt будет работать с любым компилятором С++.
Этот механизм работает следующим образом:
• макрос Q_OBJЕСТ объявляет некоторые функции, которые необходимы для анализа внутреннего состояния и которые должны быть реализованы в каждом подклассе QObject: metaObject(), tr(), qt_metacall() и некоторые другие;
• компилятор moc генерирует реализации функций, объявленных макросом Q_OBJECT, и всех сигналов;
• такие функции—члены класса QObject, как connect() и disconnect(), во время своей работы используют функции анализа внутреннего состояния.
Все это выполняется автоматически при работе qmake, moc и при компиляции QObject, и поэтому у вас крайне редко может возникнуть необходимость вспомнить об этом механизме. Однако если вам интересны детали реализации этого механизма, вы можете воспользоваться документацией по классу QMetaObject и просмотреть файлы исходного кода С++, сгенерированные компилятором moc.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Система Google
Система Google До того как в 2001 году Стив Берковиц взялся вдохнуть жизнь в чахнущую поисковую систему Ask Jeeves, он мало что знал о волшебных свойствах системы Google. Проницательному предпринимателю нравилась временная роль аутсайдера, поскольку он не считал, что превратить
1.10. Справочная система
1.10. Справочная система «Родной» для UNIX справочной системой, аналогом Справки Windows, служат страницы интерактивного руководства (manual pages, man-страницы). Ими снабжена практически каждая программа, важный конфигурационный файл или системный вызов. Это обычные текстовые файлы,
7.2.2.1. Корневая файловая система и система инициализации
7.2.2.1. Корневая файловая система и система инициализации Итак, вы выбрали загрузку Linux. Загрузчик GRUB загрузит ядро, а затем передаст ему параметры и управление. Подробновесь процесс загрузки ядра рассматриваться здесь не будет. Вам достаточно знать следующее: ядру при
Система
Система Здесь собрано сразу несколько компонентов, с помощью которых можно изучать и настраивать различные параметры, влияющие на работу операционной системы. Так, тут можно просмотреть основные сведения о конфигурации компьютера, увидеть оценку его
1.1. Веб-система > веб-сайт
1.1. Веб-система > веб-сайт Буквально за несколько лет сфера веб-разработок прошла путь эволюции от примитивных статичных веб-страничек (текст + картинки) до многофункциональных интегрированных с другими приложениями веб-систем. Появилась реальная возможность «вынести»
Система
Система Диспетчер устройств (Windows 2000/XP)В Диспетчере устройств (Система-Оборудование-кнопка Диспетчер устройств) если выбрать какое-нибудь устройства и отобразить его свойства, то по умолчанию будет показано стандартное окно свойств. К данному окну можно добавить еще
Операционная система
Операционная система Все перечисленные компоненты для написания примеров были установлены на одном компьютере, работающем под управлением Windows NT4 Service Pack 5, Internet Explorer
Операционная система
Операционная система Устойчивая работа программы Premiere Pro гарантируется на компьютере с инсталлированной операционной системой Microsoft Windows XP с установленным пакетом исправлений Service Pack 2 или выше или Microsoft Windows
Как работает система
Как работает система В этом разделе рассматриваются принципы функционирования системы передачи данных со спутника, рассказывается, как транслируется сигнал, какие преимущества это дает и какие ограничения накладываются. После прочтения раздела пользователь будет
Система охлаждения
Система охлаждения При повышении температуры любые электронные составляющие могут выйти из строя.[5] В первую очередь это касается процессора.Современные процессоры сильно нагреваются, особенно те, которые созданы с применением устаревших технологий. Тепловыделение
Акустическая система
Акустическая система Акустическая система – это средство воспроизведения сформированного звуковой картой звука – колонки разных спецификаций (2.1, 3.1 и т. д.) и наушники.От акустической системы напрямую зависит качество звука, поэтому даже если в компьютере установлена
Система не загружается
Система не загружается Это происходит довольно часто в том случае, если вы настраиваете слишком высокую скорость при разгонке процессора или памяти. Также это может случиться в результате неправильной настройки опций BIOS.Ваша система перестает отвечать на запросы. При