Qt
Матеріал з Вікіпедії — вільної енциклопедії.
| Qt | |
|---|---|
Qt designer |
|
| Тип: | Widget toolkit |
| Розробник: | Qt Software |
| Стабільний випуск: | 4.5 / 3 березня 2009 |
| Мова програмування: | C++ |
| ОС: | крос-платформова |
| Ліцензія: | GPL 2/3 LGPL[1] Q Public License Proprietary |
| Сайт: | qtsoftware.com |
Qt (варіант вимови від розробників cute — к'ют[2]) — крос-платформовий інструментарій розробки ПЗ мовою програмування C++. Дозволяє запускати написане за його допомогою ПЗ на більшості сучасних операційних систем шляхом простої компіляції тексту програми для кожної ОС без зміни початкового коду. Включає всі основні класи, які можуть бути потрібні при розробці прикладного програмного забезпечення, починаючи з елементів графічного інтерфейсу і закінчуючи класами для роботи з мережею, базами даних, OpenGL, SVG і XML. Бібліотека дозволяє управляти нитями, робити з мережею, і забезпечує крос-платформовий доступ до файлів.
Qt також може бути використаним в багатьох інших мов програмування: Ada (QtAda),[3] C# (Qyoto/Kimono),[4] Java (Qt Jambi),[5] Qt Jambi, Pascal, Perl, PHP (PHP-Qt), Ruby (QtRuby), та Python (PyQt).
Зміст |
[ред.] Варіанти
Існують різні версії бібліотеки для наступних платформ:
- Qt/X11 — для X Window System (Unix / Linux)
- Qt/Mac — для Mac OS X
- Qt/Windows — для Microsoft Windows
- Qt/Embedded — для вбудовуваних платформ (PDA, смартфонів...)
- Qt/WinCE — для Windows CE
Версія Qt/Embedded розповсюджувалася до недавнього часу. Тепер ця платформа перейменована в Qtopia Core і розповсюджується як окремий продукт. Qtopia Core забезпечує базову функціональність для всієї лінійки платформ, призначених для розробки застосунків для вбудовуваних і мобільних пристроїв (КПК, смартфонів тощо).
Qt 4 поширюєтсья в чотирьох редакціях:
- Qt Console — для розробки застосунків без графічного інтерфейсу (мережні демони, консольні застосунки тощо).
- Qt Desktop Light — полегшена версія для розробки застосунків з графічним інтерфейсом, але без підтримки баз даних, мережі і XML.
- Qt Desktop — повна версія, включає всі компоненти.
- Qt Open Source Edition — повна версія для розробки відкритого програмного забезпечення, що поширюєтсья під ліцензією GNU GPL. Не підтримує комерційні компілятори.
До версії 4.0.0, під вільною ліцензією розповсюджувалися лише Qt/Mac, Qt/X11, Qt/Embedded, але починаючи з 4.0.0 (випущеної в кінці 2005 червня) Trolltech «звільнили» і Qt/Windows. Слід зазначити, що існували сторонні вільні версії Qt/Windows і до 4.0.0, зроблені на основі Qt/X11.
[ред.] Програмне забезпечення, котре використовує Qt
З часу своєї появи в 1996 році комерційна версія бібліотеки Qt лягла в основу тисяч успішних проектів [6] у всьому світі. Крім того, Qt є фундаментом популярного робочого середовища KDE, що входить до складу багатьох дистрибутивів GNU/Linux.
Серед відомих проектів особливо треба відзначити
- веб-браузер Opera;
- програма для IP-телефонії Skype;
- програма для обробки зображень Adobe Photoshop Album;
- мережева карта світу Google Earth.
Відмінна особливість Qt від інших бібліотек — використання Meta Object Compiller — попередньої системи обробки початкового коду (загалом, Qt, це бібліотека не для чистого C++, а для його особливого діалекту, з якого і «перекладає» MOC для подальший компіляції будь-яким стандартним C++ компілятором). MOC дозволяє у багато разів збільшити потужність бібліотек, вводячи такі поняття як слоти (slots) і сигнали (signals). Qt комплектується графічним середовищем розробки графічного інтерфейсу QTDesigner, що дозволяює створювати діалоги і форми «мишею». Ідеологія створення форм в Qt базується на використанні менеджерів розташування, котрі створюють «гумовий» дизайн, при якому розмір і розташування елементів форм визначаються автоматично, що значно прискорює розробку графічного інтерфейсу. В поставці Qt є «Qt Linguist» — могутня графічна утиліта, що дозволяє спростити локалізацію і переклад вашої програми багатьма мовами; і «Qt Assistant» — довідкова система Qt, що спрощує роботу з документацією по бібліотеці, а також дозволяє створювати крос-платформову довідку для розробленого на основі Qt ПЗ.
[ред.] Компоненти
Бібліотека розділена на декілька модулів, для четвертої версії бібліотеки це:
- QtCore — класи ядра бібліотеки використовувані іншими модулями;
- QtGui — компоненти графічного інтерфейсу;
- QtNetwork — набір класів для мережевого програмування. Підтримка різних високорівневих протоколів може мінятися від версії до версії. У версії 4.2.x присутні класи для роботи з протоколами FTP і HTTP. Для роботи з протоколами TCP/IP і UDP призначені такі класи як: QTcpServer, QTcpSocket для TPC/IP і QUdpSocket для UDP;
- QtOpenGL — набір класів для роботи з OpenGL;
- QtSql — набір класів для роботи з базами даних мовою структурованих запитів 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. Модуль доступний тільки в комерційній редакції Qt.
Також реалізована технологія WOC — widgets on canvas, за допомогою якої буде реалізована Plasma в KDE 4.1, Буде можливим використовувати віджети бібліотеки Qt прямо в аплетах. Забезпечує розташування віджетів на QGraphicsView з можливістю масштабування і різних графічних ефектів.
Бібліотека використовує власний формат проекту, що іменується .pro файлом, в якому зібрана інформація про те, які файли будуть скомпільовані, за якими путями шукати заголовні файли і багато іншої інформації. Згодом за допомогою утиліти qmake з них виходять makefile для make-утиліти компілятора. Також є можливість роботи за допомогою інтеграторів з такими середовищами програмування як Microsoft Visual Studio 2003/2005 і зовсім недавно стала доступна інтеграція в Eclipse, для версії бібліотеки 4.х.х.
Розробники на Java можуть використовувати Qt за допомогою фреймворка Qt Jambi від того ж виробника.
[ред.] Виноски
- ↑ Nokia to Add LGPL to Qt Licensing Model
- ↑ Interview with Trolltech president Eirik Eng on dot.kde.org
- ↑ QtAda, Ada 2005 bindings for Qt
- ↑ The Qyoto / Kimono Project, a .Net and C# bindings for Qt
- ↑ Qt Jambi, Java bindings for Qt from Trolltech
- ↑ База застосунків, що використовують QT
[ред.] Посилання
- Офіційний сайт компанії Qt Software
- Документація
- An Introduction to Design Patterns in C++ with Qt4. Excerpts from a Prentice Hall book teaching C++ programming from the ground up, using Qt 4.1
- KDE

