ованих запитів SQL.
Основні класи даного модуля у версії 4.2.х: QSqlDatabase - клас для надання з'єднання з базою, для роботи з якою-небудь конкретною базою даних вимагає об'єкт, успадкований від класу QSqlDriver - абстрактного класу, який реалізується для конкретної бази даних і може вимагати для компіляції SDK бази даних. Наприклад, для складання драйвера під базу даних FireBird/InterBase вимагає .h файли і бібліотеки статичної лінковки, що входять в комплект поставки даної БД:
· QtScript - класи для роботи з Qt Scripts;
· QtSvg - класи для відображення і роботи з даними Scalable Vector
· Graphics (SVG);
· QtXml - модуль для роботи з XML, підтримується SAX і DOM моделі роботи;
· QtDesigner - класи створення розширень QtDesigner для своїх власних віджетів;
· QtUiTools - класи для обробки в додатку форм Qt Designer;
· QtAssistant - довідкова система;
· Qt3Support - модуль з класами, необхідними для сумісності бібліотекою Qt версії 3.х.х;
· QtTest - модуль для роботи з UNIT тестами;
· QtWebKit - модуль WebKit, інтегрований в Qt і доступний через її класи;
· QtXmlPatterns - модуль для підтримки XQuery 1.0 і XPath 2.0;
· Phonon - модуль для підтримки відтворення і запису відео і аудіо, як локально, так і з пристроїв і по мережі;
· QtCLucene - модуль для підтримки повнотекстового пошуку, застосовується в новій версії Assistant в Qt 4.4;
· ActiveQt - модуль для роботи з ActiveX і COM технологіями для Qt-розробників під Windows;
· QtDeclarative - модуль, що надає декларативний фреймворк для створення динамічних, настроюються користувальницьких інтерфейсів.
· CamelCasing: імена класів виглядають як MyClassName, а імена методів - як myMethodName. При цьому імена всіх класів Qt починаються з Q, наприклад QObject, QList або QFont.
Для ефективної роботи з класами на стадії виконання в Qt використовується спеціальна об'єктна модель, що розширює модель C ++. Зокрема, додаються наступні можливості: деревовидні ієрархії об'єктів;
· аналог dynamic_cast для бібліотеки, що не використовує RTTI;
· взаємодія об'єктів через сигнали і слоти;
· властивості об'єктів.
Багато об'єктів визначаються значенням відразу декількох властивостей, внутрішніми станами і зв'язками з іншими об'єктами. Вони являють собою індивідуальні суті, і для них не має сенсу операція буквального копіювання, а також поділ даних в пам'яті. У Qt ці об'єкти успадковують властивості QObject [2] У тих випадках, коли об'єкт турбувалися б розглядати не як сутність, а як значення (наприклад, при зберіганні в контейнері) - використовуються покажчики.
Іноді покажчик на об'єкт, успадковані від QObject, називають просто об'єктом.
При створенні графічних користувацьких інтерфейсів взаємодія об'єктів часто здійснюється через зворотні виклики, тобто передачу коду для подальшого виконання (у вигляді покажчиків на функції, функторів, і т.д.).
Також популярна концепція подій і обробників, в якій обробник діє як перехоплювач події певного об'єкта. У Qt запроваджується концепція сигналів і слотів. Сигнал відправляється при виклику відповідного йому методу. Програмісту при цьому потрібно тільки вказати прототип методу в розділі signals.
Слот є методом, виконуваним при отриманні сигналу. Слоти можуть оголошуватися в розділі pulic slots, protected slots або private slots. При цьому рівень захисту впливає лише на можливість виклику слотів в якості звичайних методів, але не на можливість підключення сигналів до слотів.
Модель сигналів і слотів відрізняється від моделі подій і обработчіковnтем, що слот може підключатися до будь-якого числа сигналів, а сигнал може підключатися до будь-якого числа слотів. При відправці сигналу будуть викликані всі підключені до нього слоти.
Таким чином, для ефективної роботи з класами на стадії виконання Qt використовує спеціальну об'єктну модель, в якій за допомогою спадкування від QObject і генерування коду компілятором метаоб'ектов реалізовані:
· ієрархії об'єктів;
· спеціальний аналог dynamic_cast, не залежний від RTTI;
· система сигналів і слотів;
· система властивостей об'єктів;
· динамічна робота з класами.
. 2 Delphi