- Qt
-
Qt
Программа Qt DesignerТип Кроссплатформенный фреймворк, содержащий элементы пользовательского интерфейса (виджеты), шаблоны контейнеров, средства работы с мультимедиа и т.п.
Разработчик Написана на Операционная система Последняя версия 5.0.0 (19 декабря 2012 года)
Кандидат в релизы Лицензия Сайт http://qt.digia.com/ (коммерческая версия)
http://www.qt-project.org (открытая бесплатная версия)Qt (произносится «къют»[3]) — кросс-платформенный инструментарий разработки ПО на языке программирования C++. Есть также «привязки» ко многим другим языкам программирования: Python — PyQt, PySide; Ruby — QtRuby[4]; Java — Qt Jambi[5]; PHP — PHP-Qt и другие.
Позволяет запускать написанное с его помощью ПО в большинстве современных операционных систем путём простой компиляции программы для каждой ОС без изменения исходного кода. Включает в себя все основные классы, которые могут потребоваться при разработке прикладного программного обеспечения, начиная от элементов графического интерфейса и заканчивая классами для работы с сетью, базами данных и XML. Qt является полностью объектно-ориентированным, легко расширяемым и поддерживающим технику компонентного программирования.
Существуют версии библиотеки для Microsoft Windows, систем класса UNIX с графической подсистемой X11, iOS, Android, Mac OS X, Microsoft Windows CE, QNX[6], встраиваемых Linux-систем и платформы S60. В данный момент рассматривается возможность внедрения поддержки Qt в Windows Phone[7]. Также идёт портирование на Haiku.
До недавнего времени библиотека Qt также распространялась ещё в одной версии: Qt/Embedded. Теперь эта платформа переименована в Qtopia Core и распространяется как отдельный продукт. Qtopia Core обеспечивает базовую функциональность для всей линейки платформ, предназначенных для разработки приложений для встраиваемых и мобильных устройств (КПК, смартфонов и т. п.).
Начиная с версии 4.5 Qt распространяется по 3 лицензиям (независимо от лицензии, исходный код Qt один и тот же):
- Qt Commercial — для разработки ПО с собственнической лицензией, допускающая модификацию самой Qt без раскрытия изменений;
- GNU GPL — для разработки ПО с открытыми исходниками, распространяемыми на условиях GNU GPL;
- GNU LGPL — для разработки ПО с собственнической лицензией, но без внесения изменений в Qt.
До версии 4.0.0 под свободной лицензией распространялись лишь Qt/Mac, Qt/X11, Qt/Embedded, но, начиная с 4.0.0 (выпущенной в конце июня 2005), Qt Software «освободили» и Qt/Windows. Следует отметить, что существовали сторонние свободные версии Qt/Windows < 4.0.0, сделанные на основе Qt/X11.
Со времени своего появления в 1996 году библиотека Qt легла в основу тысяч успешных проектов[8] во всём мире. Кроме того, Qt является фундаментом популярной рабочей среды KDE, входящей в состав многих дистрибутивов Linux.
Отличительная особенность Qt от других библиотек — использование Meta Object Compiler (MOC) — предварительной системы обработки исходного кода (в общем-то, Qt — это библиотека не для чистого C++, а для его особого наречия, с которого и «переводит» MOC для последующей компиляции любым стандартным C++ компилятором). MOC позволяет во много раз увеличить мощь библиотек, вводя такие понятия, как слоты и сигналы. Кроме того, это позволяет сделать код более лаконичным. Утилита MOC ищет в заголовочных файлах на C++ описания классов, содержащие макрос
Q_OBJECT
, и создаёт дополнительный исходный файл на C++, содержащий метаобъектный код.Qt позволяет создавать собственные плагины и размещать их непосредственно в панели визуального редактора. Также существует возможность расширения привычной функциональности виджетов, связанной с размещением их на экране, отображением, перерисовкой при изменении размеров окна.
Qt комплектуется визуальной средой разработки графического интерфейса «Qt Designer», позволяющей создавать диалоги и формы в режиме WYSIWYG. В поставке Qt есть «Qt Linguist» — графическая утилита, позволяющая упростить локализацию и перевод программы на многие языки; и «Qt Assistant» — справочная система Qt, упрощающая работу с документацией по библиотеке, а также позволяющая создавать кросс-платформенную справку для разрабатываемого на основе Qt ПО. Начиная с версии 4.5.0 в комплект Qt включена среда разработки «Qt Creator», которая включает в себя редактор кода, справку, графические средства «Qt Designer» и возможность отладки приложений. «Qt Creator» может использовать GCC или Microsoft VC++ в качестве компилятора и GDB в качестве отладчика. Для Windows версий библиотека комплектуется компилятором, заголовочными и объектными файлами MinGW.
Содержание
Компоненты
Библиотека разделена на несколько модулей, для четвёртой версии библиотеки это:
- QtCore — классы ядра библиотеки, используемые другими модулями;
- QtGui — компоненты графического интерфейса;
- QtNetwork — набор классов для сетевого программирования. Поддержка различных высокоуровневых протоколов может меняться от версии к версии. В версии 4.2.x присутствуют классы для работы с протоколами FTP и HTTP. Для работы с протоколами TCP/IP предназначены такие классы, как QTcpServer, QTcpSocket для TCP и 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.
- QtDeclarative — модуль, предоставляющий декларативный фреймворк для создания динамичных, настраиваемых пользовательских интерфейсов.
Также реализована технология WoC — widgets on canvas, с помощью которой реализована Plasma в KDE 4.1, Будет возможным использовать виджеты библиотеки Qt прямо в аплетах. Обеспечивает расположение виджетов на QGraphicsView с возможностью масштабирования и различных графических эффектов.
Библиотека использует собственный формат проекта, именуемый .pro файлом, в котором собрана информация о том, какие файлы будут скомпилированы, по каким путям искать заголовочные файлы и много другой информации. Впоследствии при помощи утилиты qmake из них получаются makefile для make-утилиты компилятора. Также есть возможность работы при помощи интеграторов с Microsoft Visual Studio 2003/2005/2008/2010. Совсем недавно стала доступна интеграция в Eclipse для версии библиотеки 4.х.х.
Разработчики на Java могут использовать Qt с помощью фреймворка Qt Jambi от того же производителя (официально с 2009 года Qt Software прекратила разработку этого фреймворка).
Документация
Одним из весомых преимуществ проекта Qt является наличие качественной документации[9][10], в отличие, например, от wxWidgets. Статьи документации снабжены большим количеством примеров. Исходный код самой библиотеки хорошо форматирован, подробно комментирован и легко читается, что также упрощает изучение Qt.
Исходный код
Исходный код, единый для всех вариантов лицензий, свободно доступен в Git-хранилище, расположенном на Gitorious-е по адресу — qt.gitorious.org/qt. Кроме самого исходного кода Qt, на Gitorious-е расположены хранилища сопутствующих библиотек, разрабатываемых авторами библиотеки и сообществом. Корневой адрес связанных с Qt официальных проектов — qt.gitorious.org. Для внесения собственного вклада в развитие Qt, можно склонировать официальное хранилище, внести необходимые исправления/улучшения в код, а затем подать запрос на объединение (Merge Request) ваших изменений с официальным кодом.
Подробная инструкция по участию находится здесь.
Использование
Qt используется в Autodesk Maya,[11][12], Adobe Photoshop Elements, OPIE, Skype, VLC media player,[13] VirtualBox, и Mathematica,[14] и на European Space Agency,[15] DreamWorks,[16][17] Google, HP,[18] KDE, Lucasfilm,[19] Panasonic,[20] Philips,[21] Samsung,[22] Siemens,[23] Volvo[24] и Walt Disney Animation Studios[25].
Кроме того, на Qt основана среда рабочего стола KDE, графический интерфейс мобильной ОС MeeGo и Qt Creator — среда разработки на Qt;
См. также Категория:Приложения, использующие Qt
См. также
- PyQt, PySide
- qtHaskell[26] — привязка Qt к Haskell
- Qt-Forth[27][28] — Подключение Qt к Форту (SPF4)
- KDE
- Greenphone
- Среды разработки для Qt:
- Qt Creator (разработчик: Qt Software)
- QDevelop
- HaiQ
- KDevelop
- edyuk
- MonkeyStudio
- Eclipse (см. Qt Eclipse Integration for C++ )
- Другие фреймворки ГИП
Примечания
- ↑ Интервью с директором отдела разработки Digia Сообщение на linux.org.ru
- ↑ Qt Licensing (англ.) — Лицензирование Qt
- ↑ Interview with Trolltech’s Eirik Eng and Matthias Ettrich (англ.) (12 April 2004). Архивировано из первоисточника 3 февраля 2012. Проверено 16 декабря 2011.
- ↑ http://developer.kde.org/language-bindings/ruby/index.html (недоступная ссылка)
- ↑ http://www.qtsoftware.com/products/qt/jambi/ (недоступная ссылка)
- ↑ Qt framework for QNX (англ.)
- ↑ Qt на Windows Phone (англ.)
- ↑ Free Qt Applications (англ.) — База открытых приложений, использующих Qt
- ↑ Jono Bacon Reviews: Qt (англ.). MacTech (2004). Архивировано из первоисточника 23 августа 2011. Проверено 16 сентября 2010.
- ↑ Online Reference Documentation (англ.). Nokia. Архивировано из первоисточника 23 августа 2011. Проверено 16 сентября 2010.
- ↑ Qt in Autodesk. Архивировано из первоисточника 3 февраля 2012.
- ↑ Qt in visual effects. Архивировано из первоисточника 3 февраля 2012.
- ↑ Qt in VideoLan Player. Архивировано из первоисточника 3 февраля 2012.
- ↑ Qt delivered advanced, cross-platform C++ GUI for Mathematica’s development team. Архивировано из первоисточника 3 февраля 2012.
- ↑ Qt in the European Space Agency. Архивировано из первоисточника 3 февраля 2012.
- ↑ Behind the Scenes at DreamWorks Animation: Making the Apps that Make the Movies. Архивировано из первоисточника 3 февраля 2012.
- ↑ UI & System Design Challenges for the NxG Lighting Tool. Архивировано из первоисточника 3 февраля 2012.
- ↑ Developing Innovative Desktop and Embedded HP Products with Qt. Архивировано из первоисточника 3 февраля 2012.
- ↑ Lucasfilm Entertainment Company Ltd.. Архивировано из первоисточника 3 февраля 2012.
- ↑ Panasonic selects Qt for HD video system. Архивировано из первоисточника 3 февраля 2012.
- ↑ Qt in IP Communications. Архивировано из первоисточника 3 февраля 2012.
- ↑ Qt in Home Media. Архивировано из первоисточника 3 февраля 2012.
- ↑ Qt helped Siemens deliver a C++ development platform for manufacturing software GUIs. Архивировано из первоисточника 3 февраля 2012.
- ↑ Volvo Mobility Systems. Архивировано из первоисточника 3 февраля 2012.
- ↑ Qt helped Walt Disney reduce development time spent on its cross-platform feature film production application. Архивировано из первоисточника 3 февраля 2012.
- ↑ qtHaskell
- ↑ Qt-Forth — учебный forth с графикой Qt для Windows и Linux
- ↑ Подключение графической библиотеки QT к SPF 4.20
Литература
- Боровский А. Qt 4.7+ Практическое программирование на C++. — СПб.: «БХВ-Петербург», 2012. — С. 496. — ISBN 978-5-9775-0757-8
- Макс Шлее Qt 4.8 Профессиональное программирование на C++. — СПб.: «БХВ-Петербург», 2012. — С. 912. — ISBN 978-5-9775-0736-3
- Саммерфилд М. Qt. Профессиональное программирование. Разработка кроссплатформенных приложений на С++. — СПб.: «Символ-Плюс», 2011. — С. 560. — ISBN 978-5-93286-207-0
- Макс Шлее Qt 4.5 Профессиональное программирование на C++. — СПб.: «БХВ-Петербург», 2010. — С. 896. — ISBN 978-5-9775-0398-3
- Ж. Бланшет, М. Саммерфилд Qt 4: Программирование GUI на C++. 2-е дополненное издание. — М.: «КУДИЦ-ПРЕСС», 2008. — С. 736. — ISBN 978-5-91136-059-7
- Земсков Ю.В. Qt 4 на примерах. — СПб.: «БХВ-Петербург», 2008. — С. 608. — ISBN 978-5-9775-0256-6
- Ж. Бланшет, М. Саммерфилд Qt 4: Программирование GUI на C++. — М.: «КУДИЦ-ПРЕСС», 2007. — С. 648. — ISBN 978-5-91136-038-2
- Макс Шлее Qt 4: Профессиональное программирование на C++. — СПб.: «БХВ-Петербург», 2007. — С. 880. — ISBN 978-5-9775-0010-6
- Чеботарев А. Библиотека Qt 4. Создание прикладных приложений в среде Linux. — М.: «Диалектика», 2006. — С. 256. — ISBN 5-8459-0996-1
Ссылки
Портал «Свободное программное обеспечение» Qt в Викиучебнике? Qt на Викискладе? - Официальный сайт компании Qt Software (англ.)
- Официальный сайт Qt Commercial (англ.)
- Официальная документация (англ.)
- Лицензирование Qt Commercial (рус.)
- Неофициальный перевод документации (перевод в процессе) (рус.)
- Сборка Qt под Windows Embedded Core
- Qt в каталоге ссылок Open Directory Project (dmoz). (рус.)
Qt Технологии Meta-object System · Phonon · QML · QtScript · Qt Quick · Qt Style Sheets · Сигналы и слоты Инструменты qmake · Qt Creator · Метаобъектный компилятор Привязки PyQt · PySide · QtRuby · Qt Jambi Связанные темы KDE · MeeGo · Qt Development Frameworks Инструменты разработки элементов графического интерфейса Низко-
уровневыеMacintosh Toolbox/Carbon • Windows API • Intrinsics • Intuition • Xlib
Высоко-
уровневыеAmiga OS BOOPSI • Magic User Interface • Zune • ReAction GUI
Mac OS и
Mac OS XCocoa • MacApp • MacZoop • PowerPlant
Microsoft
WindowsUNIX, под X Кросс-
платфор-
менныеНа основе Flash ASWing • Adobe Flex • Gnash • SWF2EXE Software
На основе XML,
AJAX или SVGAmple SDK • CougarXML • Dojo Toolkit • Echo • ExtJS • GladeXML • Google Web Toolkit • jQuery • Lively Kernel • MooTools • Pyjamas • qooxdoo • Rialto Toolkit • script.aculo.us • XML User Interface • XUL • Yahoo! UI Library
На основе Java На основе
C или C++Agar • CEGUI • Component Library for Cross Platform • dlib C++ Library • FLTK • FOX toolkit • OpenGL User Interface Library • GTK+ • IUP • Juce • JX Application Framework • Qt • TnFOX • Visual Component Framework • wxWidgets • YAAF • XForms • XVT • Ultimate++
На основе Common Lisp CAPI • Common Graphics • CLIM • McCLIM • Garnet
На основе Pascal IP Pascal • Lazarus • fpGUI • FireMonkey
На основе Python На основе Objective C На основе других Категории:- Программное обеспечение по алфавиту
- Qt
- Свободные библиотеки программ
- Программное обеспечение с лицензией GNU GPL
- Программное обеспечение с лицензией GNU LGPL
- Кроссплатформенное программное обеспечение
- Программное обеспечение для Haiku
- Программное обеспечение для Mac OS X
- Программное обеспечение для Linux
- Программное обеспечение для OpenSolaris
- Программное обеспечение для Solaris
- Программное обеспечение для Windows
- Библиотеки виджетов
- Библиотеки C++
- Библиотеки на основе X
- Свободное программное обеспечение, написанное на C++
- Появились в 1996 году
Wikimedia Foundation. 2010.