Qt библиотек: Русское Qt-сообщество | Программирование Qt
Русское Qt-сообщество | Программирование Qt
В наши дни трудно представить себе приложение приложение без графического пользовательского интерфейса. Приложения, обладающие удобным, функциональным, красивым, интерфейсом, имеет гораздо больше шансов запомниться пользователю и стать его повседневным инструментом. Для построения графического интерфейса существует множество библиотек, одной из которых является библиотека Qt.
Кросс-платформенная библиотека Qt, разработанная финской компанией Trolltech, ныне принадлежит корпорации Nokia. Qt реализована на языке программирования C++ и пользуется популярностью у, прежде всего, C++-программистов поскольку использует «родной» для них интерфейс. Возможности C++ в Qt значительно расширенны с помощью макросов и MOC (Meta Object Compiler): добавлены сигналы/слоты, появилось возможность использовать в собственных классах свойства (propperty). Но Qt не ограничена только лишь языком C++. Для программистов Python, Ruby, Php и Perl также реализованы интерфейсы взаимодействия, которые, как правило, используются для построения графического интерфейса пользователя. Программисты Java могут обратить внимание на проект Jambi, но его будущее очень туманно.
Область применения Qt
Если вы ранее не были знакомы с Qt, то перед вами может возникнуть вопросы: зачем мне изучать еще одну библиотеку или для решения каких задач применять Qt?
Из того, что Qt является кросс-платформенной, следует что с ее помощью можно создавать desktop-приложения для Windows, Linux, Mac OS X (как консольные, так и с оконным графическим интерфейсом). Однако разработчики Qt на этом не остановились. В последние несколько лет наблюдается тенденция увеличения количества выпускаемых мобильных устройств. Было бы по меньшей мере странным не портировать Qt на мобильные платформы: Symbian, Maemo, MeeGo. Также известно об удачном опыте портрования Qt Lighthouse на платформу Android.
Лицензирование Qt
Qt имеет тройное лицензирование:
- Qt Commercial — коммерческая лицензия, после приобретения которой вы можете выпускать программный продукт под собственной лицензией.
- GNU GPL — если вы open-source разработчик это ваш выбор.
- GNU LGPL — позволяет вести разработку под собственной лицензией, однако вы не можете вносить изменения в код Qt.
К сильным сторонам Qt можно отнести:
- Кроссплатформенность: Qt работает как в настольных операционных системах Windows, Linux, Mac OS и др., так и мобильных Symbian, Maemo, MeeGo.
- Быстроту: часто кросплатформенные приложения, написанные на платформах Java и .Net Framework, оказываются очень медлительным из-за дополнительного уровня абстракции. Программы Qt являются компилируемыми C++-приложениями, т. е. не работают также быстро как и приложения С++.
Динамические библиотеки в Qt / Хабр
Введение
До начала работы с библиотекой Qt я программировал различные задачки на С++ в университете, а на работе использовал Delphi. И конечно же, в процессе работы создавались различные библиотеки. Создавались, можно сказать, с трудом. Не хватало в повседневной жизни тех плюсов, которые давало ООП. Всегда хотелось экспортировать из библиотек целые классы, причем делать это просто, быстро и беззаботно. При этом вопросы о создании библиотек на С++ и дальнейшем их использовании в проектах на Delphi или C возникали очень редко.
И вот я участвую в разработке своего первого проекта с использованием библиотеки Qt. Чтение книг, ассистента, форумов, статей и идеи, идеи, идеи. Проект большой, содержит множество компонентов, а опыт наша команда набирала, скажем так, в боевых условиях.
Создание библиотеки
В процессе работы ставилось множество задач, одной из которых и было создание единой методики создания библиотек для нужд проекта. Чтобы этой методикой могли воспользоваться начинающие программисты участвующие в разработке. Она достаточно простая и опытные разработчики используют ее не задумываясь.
Большая часть изменений касается *.pro файла Вашей будущей библиотеки:
- # Мы создаем библиотеку
- # В указанную директорию относительно директории, в которой находится
- # pro-файл будут помещены бинарные файлы библиотеки.
- TEMPLATE = lib
- DESTDIR = dist
- # Версия библиотеки.
- VERSION = 1.0.0
- # Задаем имя нашей библиотеки
- TARGET = $$qtLibraryTarget(MyLibrary)
- # Указываем, что собирать надо release и debug версии библиотек
- CONFIG += build_all
О функции qtLibraryTarget
Функция $$qtLibraryTarget дополняет название нашей библиотеки номером версии и постфиксом типа сборки (“d” — в windows, “_debug” — в mac, в linux постфикса нет). То есть в после сборки в папке назначения мы увидим файлы (windows):
- MyLibrary1.dll — release-сборка библиотеки. (Номер версии берется из старшего разряда, указанного в теге VERSION. Например, VERSION = 1.0.0, следует номер версии библиотеки будет равен 1)
- MyLibraryd1.dll — debug-сборка библиотеки.
Правим код
Теперь необходимо настроить экспорт нашего кода из библиотек. Для этого создадим в новый заголовочный файл и назовем его, например, MyLibrary_global.h. Его содержимое должно быть таким (Creator создает этот файл автоматически при создании проекта динамической библиотеки):
- #ifndef MYLIBRARY_GLOBAL_H
- #define MYLIBRARY_GLOBAL_H
- #include <QtCore/qglobal.h>
- #if defined(MyLibrary_LIBRARY)
- # define MyLibrary_EXPORT Q_DECL_EXPORT
- #else
- # define MyLibrary_EXPORT Q_DECL_IMPORT
- #endif
- #endif /* MYLIBRARY_GLOBAL_H */
Добавим созданный файл в проект:
- HEADERS += MyLibrary_global.h
- # И допишем обязательную строчку с макросом экспорта:
- DEFINES += MyLibrary_LIBRARY
Экспорт классов и функций
И теперь самое главное. Во всех классах и функциях, которые должны быть видны снаружи библиотеки, необходимо дописать определенный ранее макрос MyLibrary_EXPORT (эти файлы будут заголовочными и должны поставляться вместе с бинарными файлами библиотеки). Например, мы хотим экспортировать класс:
- #include "MyLibrary_global.h"
- class MyLibrary_EXPORT ComputerManager: public QObject {
- Q_OBJECT
- ...
- }
- // или функцию:
- MyLibrary_EXPORT QDebug operator<<(QDebug d, const MyObject &object);
О сборке библиотек в linux
Как уже было сказано, при сборке библиотеки в linux постфикс типа сборки не ставится (в этом можно убедиться, посмотрев реализацию этой функции qtLibraryTarget в исходниках qt). Но и это не беда, достаточно немного подправить строки в pro-файле:
- # Если операционная система из семейства unix
- unix: {
- CONFIG (debug, debug|release) {
- # Такое название имеет debug-версия библиотеки
- TARGET = ComputerManagerd
- } else {
- # А такое release-версия
- TARGET = ComputerManager
- }
- } else {
- TARGET = $$qtLibraryTarget(ComputerManager)
- }
- VERSION = 1.0.0
- # Первый параметр необходим для сборки #библиотеки в linux (qmake, make all),
- # второй для сборки под остальными ОС.
- CONFIG += debug_and_release build_all
- # Указываем папки для объектных файлов. Для unix-подобных ОС это критично.
- # Если этого не сделать, то будет собираться только release версия библиотеки,
- # либо только отладочная. Связано это с тем, что файлы будут замещать друг друга.
- CONFIG (debug, debug|release) {
- OBJECTS_DIR = build/debug
- } else {
- OBJECTS_DIR = build/release
- }
Эта часть pro-файла будет создавать одновременно динамические библиотеки в debug и release версиях на windows, linux, mac.
Использование библиотеки
В pro-файле проекта необходимо дописать строки:
- # Подключаем заголовочные файлы библиотеки
- INCLUDEPATH += include/MyLibrary
- CONFIG(debug, debug|release) {
- # Подключаем debug-версии библиотек для разных платформ
- win32: LIBS += -Llib -lMyLibraryd1
- unix: LIBS += -Llib -L. -lMyLibraryd -Wl,-rpath,lib -Wl,-rpath,.
- } else {
- # Подключаем release-версии библиотек для разных платформ
- win32: LIBS += -Llib -lMyLibrary1
- unix: LIBS += -Llib -L. -lMyLibrary -Wl,-rpath,lib -Wl,-rpath,.
- }
При этом подразумевается, что в корне вашего проекта имеется две папки:
lib — Содержит бинарные файлы библиотеки. include — содержит папку MyLibrary со всеми заголовочными файлами библиотеки.
Заключение
Библиотека Qt является удобным инструментом реализации ваших идей и проектов. Она сильно упрощает жизнь программисту, потому что создание библиотек в проектах на Qt — очень простая и понятная задача.
Подсветка синтаксиса: Редактор Блогов от © SoftCoder.ru
Qt — статическая линковка библиотеки под Windows / Хабр
Всем доброго времени суток, решил написать эту статью специально для тех кто хочет или еще захочет чтобы его программка написанная c помощью Qt под Windows работала даже там где о Qt и не слышали, на Хабре есть статья где данная проблема решается сопровождением нашего .exe библиотечками от skazkin. Сам очень долго искал решение этого вопроса, но практически везде об этом говорили говорили, но ничего действенного так и не получалось. В итоге собирая и анализируя все что приходило мне из разных источников, я наконец-то сделал это и если кому ещё интересно всех прошу под кат
Немного о себе. Ось моя Windows 7 (хотя был XP все тоже), библиотеки Qt 4.7.4 (если у Вас +- пару версий это нормально), Qtcreator 2.3.1 + компилятор MinGw. Сначала ставил Qt Creator, который с официального сайта можно скачать уже с компилятором MinGW (и не только его, а и все остальное), далее библиотеки.
Приступаем к самому интересному, допустим что всё уже установлено или поставилось:
1. Находим директорию куда мы установили нашу библиотеку, что то вроде C:\Qt\4.*.*\, а точнее в C:\Qt\4.*.*\mkspecs\win32-g++ (кстати никогда не используйте кириллицу в наименовании пути к любым файлам Qt, просто не делайте это) и находим там config-file qmake.conf , открываем блокнотиком и добавляем строкуQMAKE_LFLAGS += -static
, я её поставил к остальным флажкам.
2. Теперь создаем .bat файл, причем неважно где с примерно следующим содержанием. Где первые две строки будут:SET QTDIR=C:\Qt\4.7.4
SET PATH=C:\Qt\qtcreator-2.3.1\mingw\bin; C:\Qt\4.7.4\bin;%PATH%
Важно как понимаете изменить директории под Ваши собственные, если конечно они не совпадают. Далее:configure -opensource -release ^
-nomake examples -nomake demos -nomake tools ^
-nomake translations -nomake docs ^
-no-exceptions -no-stl -no-rtti ^
-no-qt3support -no-scripttools -no-openssl -no-opengl ^
-no-dsp -no-webkit -no-phonon ^
-no-style-motif -no-style-cde -no-style-cleanlooks ^
-no-style-plastique ^
-no-script -no-scripttools -no-declarative ^
-static -platform win32-g++
mingw32-make
Внимание выше перечислены библиотеки которые будут исключены из статической сборки, так что если Вам как и мне будет необходима например поддержка Qt3, то удалите -no-qt3support, и так все что Вам нужно, или добавте то что не нужно, но будьте аккуратны.
3. Всё. Сохраняем и запускаем наш .bat и идем пить кофе, библиотеки собираются теперь без нас.
После всего проделанного наши проекты будут собираться в режиме release полностью статично и можно скорее кодить, скидывать на флешку и нести показать все это нашему другу!
Отдельное спасибо за наставления и поддержку michurin
И не судите строго, надеюсь это кому-нибудь поможет, ведь сам искал это ну очень очень долго…
Qt WinAPI — Урок 001. Как собрать все DLL, используемые в Qt-проекте?
Рано или поздно перед любым Qt-разработчиком встаёт необходимость переноса своего приложения на другие компьютеры, и тогда возникает проблема наличия библиотек на целевом компьютере, которые необходимы для запуска и работы приложения. Особенно заметно это может быть при переносе приложения, которое должно исполняться под ОС Windows. Если под ОС Linux необходимые Qt библиотеки могут присутствовать по умолчанию, как например с Ubuntu, то под ОС Windows их может и вовсе не быть.
Но поиск и сборка всех необходимых библиотек может оказаться трудной задачей для новичка, да и вполне нудной задачей для опытного программиста. Но и здесь благодаря добрым людям имеется решение. Это утилита
DLL
Collector.
Данная утилита позволяет получить зависимости программы, которая была написана на фреймворке Qt и автоматически скопировать данные библиотеки в заданную папку.
Как пишет
Автор
, утилита производит поиск зависимостей в runtime процесса. Следовательно Вашу программу необходимо запустить через данную утилиту.
DLL
Collector
собирает информацию о всех подгружаемых Плагинах, используемых Вашей программой, но при этом не стоит забывать, что плагины подгружаются при первом использовании их функциями Вашей программы. Таким образом, необходимо сделать прогон Вашей программы по её функционалу, чтобы
DLL
Collector
нашёл все библиотеки.
Как работает DLL Collector
Шаг первый. Настройка утилиты
На данном шаге необходимо произвести следующие действия:
- Указать в поле
name
путь к скомпилированной программе; - Указать в поле
bin
путь к бинарным файлам библиотек Qt; - Указать в поле
plugins
путь к плагинам Qt; - Указать путь к папке, куда будут скопированы DLL библиотеки
- Поставить галочку напротив
add bin to envitonment
Шаг второй. Запуск Вашего приложения
После того, как настройка произведена, запускаем Ваше приложение нажатием кнопки
Run.
Шаг третий. Обновление списка плагинов и библиотек
После того, как Ваше приложение запустилось, нажмите кнопку
Update.
Высветится список плагинов и библиотек. Также поработайте с Вашим приложением немного, чтобы
DLL Collector
наверняка обнаружил все зависимости и понажимайте кнопку
Update
несколько раз, чтобы убедиться, что все зависимости найдены.
Шаг четвертый. Копирование библиотек
После того, как библиотеки найдены, нажмите кнопку
Copy,
и все библиотеки будут скопированы.
Резюме
Подводя итоги, могу утверждать, что утилита весьма полезна и значительно облегчает жизнь.
На момент написания статьи Автор выложил новую версию программы, но лично у меня она крашилась. Поэтому я до сих пор пользуюсь более старой версией, которую вы можете скачать здесь:
DLLCollector
Также Вы можете ознакомиться с программой на
странице
Автора.
Также не забудьте сделать инсталлятор для своего приложения, а как это делается узнайте в
следующей статье
.
Видеоурок
Статическая линковка библиотек Qt 5.x (MinGW) под Windows / Песочница / Хабр
В данной статье я опишу как сделать отдельный комплект со статической линковкой библиотек Qt5. Если другими словами, мы сможем собирать проект в один исполняемый файл без Qt *.dll.
Подготовка
Нам понадобится непосредственно сам Qt, с официального сайта Qt 5.x.x for Windows 32-bit (MinGW).
Во время установки поставьте галочку на «Source Components», т.к. исходники будут нам необходимы для сборки.
В своем примере я буду использовать Qt 5.5.0 for Windows 32-bit (MinGW 4.9.2).
Начнем
Сборка комплекта
- Создаем резервную копию qmake.conf, он находится в «Qt5.5.0\5.5\mingw492_32\mkspecs\win32-g++»
- Делаем изменения в qmake.conf
QMAKE_LFLAGS += -static-libgcc -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc DEFINES += QT_STATIC_BUILD
- Создаем резервную копию исходников Qt, они находятся в «Qt5.5.0\5.5\Src»
- Теперь запускаем терминал Qt — Qt 5.5 for Desktop (MinGW 4.9.2 32 bit), он находится
в «Все программы -> Qt5.5.0 -> 5.5 -> MinGW 4.9.2 (32-bit)» или же полным путем «%appdata%\Microsoft\Windows\Start Menu\Programs\Qt 5.5.0\5.5\MinGW 4.9.2 (32-bit)» - Переходим в директорию с исходниками Qt, вводим команду
cd X:\Qt\Qt5.5.0\5.5\Src\
- Конфигурируем этап установки, вводя команду, где путь после -prefix, местоположение комплекта сборки
configure -static -platform win32-g++ -prefix "X:\Qt\Qt5.5.0_Static" -release -opensource -confirm-license -nomake examples -nomake tests -nomake tools -opengl desktop -no-angle -qt-sql-sqlite -make libs -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype
- По завершению конфигурирования, начинаем компиляцию исходников Qt, командой
mingw32-make
После компиляции, будет несколько ошибок, не обращаем на них внимание, они никак не скажутся на нашей сборке. - Копируем файлы в указанный нами каталог на этапе конфигурирования, командой
mingw32-make install
После копирования, так же будет несколько ошибок, не обращаем на них внимание. - Теперь восстанавливаем резервные копии исходников Qt и qmake.conf
Добавляем статичный комплект в Qt Creator
- Запускаем Qt Creator
- Открываем «Инструменты -> Параметры..»
- Далее переходим «Сборка и запуск -> Qt Versions»
- Жмем добавить и выбираем qmake.exe, точнее «X:\Qt\Qt5.5.0_Static\bin\qmake.exe»
- Переходим во вкладку «Комплекты»
- Жмем добавить
- Пишем название нашего комплекта «Qt 5.5.0 Static MinGW 32», в профиле Qt указываем наш статичный профиль, который добавили в Qt Versions, так же указываем версию нашего компилятора и отладчика(MinGW)
- Все, мы добавили статичный комплект в Qt Creator
Примечание: в статический комплект не будут включены библиотеки gcc, что бы они так же собирались в исполняемый файл, надо прописать в .pro/.pri
QMAKE_LFLAGS_RELEASE += -static -static-libgcc
Руководствовался информацией с англ. инструкции wiki.qt.io/Building_a_static_Qt_for_Windows_using_MinGW
Спасибо за внимание!
Добавление внешней библиотеки в проект Qt Creator
Если вы хотите развернуть свое приложение на машинах клиентов, а не использовать свое приложение только самостоятельно, мы обнаружим, что LIBS+= -Lxxx -lyyy
метод может привести к путанице, если нет проблем.
мы разрабатываем приложения для Linux, Mac и Windows, используя Qt. Мы грузим полные, отдельно стоящие применения. Так что все несистемные библиотеки должны быть включены в пакет развертывания. Мы хотим, чтобы наши клиенты могли запускать приложение с одного USB-накопителя для всех ОС. По причинам из совместимости платформы USB-накопитель должен быть отформатирован как FAT32, который не поддерживает символические ссылки (Linux).
мы нашли LIBS+= -Lxxx -lyyy
идиома слишком много «черного ящика»:
мы точно не знаем, что такое путь к файлу (статической или динамической) библиотеки, найденной компоновщиком. Это неудобно. Наш Mac linker регулярно находил библиотеки, отличные от тех, которые мы думали, что должны использоваться. Это произошло несколько раз с библиотеками OpenSSL где компоновщик Mac нашел и использовал свою собственную — более старую, несовместимую — версию OpenSSL, а не нашу запрошенную версию.
мы не можем позволить, чтобы компоновщик использовал символические ссылки на библиотеки, поскольку это нарушило бы пакет развертывания.
мы хотим видеть от имя библиотеки, связываем ли мы статическую или динамическую библиотеку.
поэтому для нашего конкретного случая мы используем только абсолютные filepaths и проверьте, существуют ли они. Мы удаляем все ссылки.
Сначала мы узнаем, какую операционную систему мы используем, и помещаем это в переменную CONFIG. И, например, для Linux 64bit, затем:
linux64 {
LIBSSL= $$OPENSSLPATH/linux64/lib/libssl.a
!exists($$LIBSSL): error ("Not existing $$LIBSSL")
LIBS+= $$LIBSSL
LIBCRYPTO= $$OPENSSLPATH/linux64/lib/libcrypto.a
!exists($$LIBCRYPTO): error ("Not existing $$LIBCRYPTO")
LIBS+= $$LIBCRYPTO
}
все зависимости могут быть скопированы в пакет развертывания, поскольку мы знаем их пути к файлам.
Должен ли я включать все эти библиотеки Qt в свое приложение?
обновление: используйте windeployqt.exe
! Это работает очень хорошо.
http://doc.qt.io/qt-5/windows-deployment.html#the-windows-deployment-tool
самый простой способ использовать windeployqt-добавить каталог bin
ваша установка Qt (например ) в переменную PATH, а затем
беги:windeployqt <path-to-app-binary>
обновление: после дальнейшего тестирования, windeployqt
не копировал все библиотеки MinGW для меня. (Протестировано с Qt 5.4 на Windows 10 с MingW 4.9.1). Поэтому вам нужно вручную получить последние 3 библиотеки DLL перед развертыванием:
libgcc_s_dw2-1.dll
libstdc++-6.dll
libwinpthread-1.dll
С
C:\Qt.4\mingw491_32\bin
Я думаю, у вас может быть несколько дополнений в вашем списке… Я бы дважды проверил документы в ссылках ниже…
вот окончательная документация по это:
http://doc.qt.io/qt-5/windows-deployment.html
http://doc.qt.io/qt-5/windows-deployment.html#application-dependencies
размер Qt DLL
удивительные библиотеки Qt могут многое сделать, но они довольно большие. Некоторые из старых версий Qt могут быть немного меньше.
для Qt 4.8 msvc QtCore4.dll
2,5 МБ, и QtGui4.dll
составляет 8,4 МБ.
Как Windows Разрешает Общий Доступ Библиотеки / Библиотеки динамических ссылок (DLL)
вот как Windows отслеживает библиотеку во время выполнения:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs. 85).aspx
один маленький EXE
если вы статически связываете, то ваш EXE должен захватить библиотеки, которые ему нужны, и встроен в автономный exe. Он по-прежнему может зависеть от перераспределяемых msvc. Дополнительную информацию см. В следующем разделе. Но это теперь компилирует вниз .lib
s, которые вы ссылаетесь на свой EXE, и ваш exe больше не указывает на другие динамически связанные библиотеки. Это займет больше времени, чтобы получить статически настройки ехе среды.
ваш exe, безусловно, станет больше, поскольку теперь он включает двоичную информацию для библиотек, на которые вы ссылались раньше.
https://www.google.com/search?q=qt + статический + linking
изменить:
Статически дом ехе, означает, что вы не используете версию LGPL.
означает, что вы должны иметь объектные файлы, доступные конечным пользователям, если вы используете LGPL.
Я думаю, что @peppe описал это хорошо (см. комментарий ниже):
технически вам разрешено статически связываться при использовании Qt под LGPL, даже если ваше приложение не использует LGPL. Единственное сложное требование-сохранить возможность для третьей стороны повторно связать ваше приложение с другим Версию Qt. Но вы можете легко подчиниться этому, Ф. Я. предоставляя огромный объектный файл (.o) вашего приложения, которое должно быть связано только с любой версией Qt.
http://blog.qt.io/blog/2009/11/30/qt-making-the-right-licensing-decision/
посмотрите на диаграмму внизу. Если вы делаете коммерческую версию, то вы можете статически связать, не беспокоясь об объектных файлов.
индекса MSVC Свободно распространяемые файлы
распространяемые зависимости связаны с параметрами компоновщика библиотеки времени выполнения.
http://msdn.microsoft.com/en-us/library/aa278396 (v=против 60).aspx
/MD, /ML, /MT, /LD
(Используйте Библиотеку Времени Выполнения)
чтобы найти эти параметры в среде разработки, щелкните параметры в меню проект. Затем перейдите на вкладку C/C++ и нажмите кнопку генерация кода в поле категория. См. раздел использование библиотеки времени выполнения выпадающий список.
эти две ссылки ниже рассказывают о некоторых старых версиях visual studio, но рассуждения все равно должны стоять.
http://www.davidlenihan.com/2008/01/choosing_the_correct_cc_runtim.html
как сделать полностью статически .exe с Visual Studio Express 2005?
надеюсь, что это поможет.
Добавление библиотек в проекты | Qt Creator Руководство
В дополнение к библиотекам Qt вы можете добавлять в свои проекты другие библиотеки. Способ добавления библиотеки зависит от типа и расположения библиотеки. Вы можете добавить системную библиотеку, свою собственную библиотеку или стороннюю библиотеку. Библиотека может находиться либо в дереве сборки текущего проекта, либо в другом дереве сборки.
Поскольку системные библиотеки обычно не меняются и часто встречаются по умолчанию, вам не нужно указывать путь к библиотеке или к ее включенным компонентам при добавлении.Вы можете использовать pkg-config
для запроса системных библиотек во время компиляции.
Для ваших собственных библиотек и сторонних библиотек вам необходимо указать пути. Qt Creator пытается угадать путь включения для внешней библиотеки, но вам нужно проверить его и при необходимости изменить. Qt Creator автоматически добавляет путь включения для внутренней библиотеки.
Для всех библиотек выберите целевые платформы для приложения, библиотеки или подключаемого модуля.
Укажите, связана ли библиотека статически или динамически.Для статически связанной внутренней библиотеки Qt Creator добавляет зависимости (PRE_TARGETDEPS) в файл проекта.
В зависимости от платформы разработки некоторые параметры могут определяться автоматически. Например, в macOS тип библиотеки ( Library или Framework ) определяется автоматически, а параметр скрывается. Однако, если вы разрабатываете на платформе, отличной от macOS, и хотите создать свой проект для macOS, вы должны указать тип библиотеки.
Соглашение по умолчанию в Windows заключается в том, что отладочная и выпускная версии библиотеки имеют одно и то же имя, но помещаются в разные подкаталоги, обычно называемые debug и release .Если путь к библиотеке не содержит ни одной из этих папок, вы не можете выбрать вариант размещения библиотек в отдельных папках.
В качестве альтернативы можно добавить букву d к имени библиотеки для отладочной версии. Например, если версия выпуска называется example.lib, отладочная версия называется exampled.lib. Вы можете указать, что буква добавляется для отладочной версии и удаляется для версии выпуска. Если имя библиотеки оканчивается на d , снимите флажок Удалить суффикс «d» для параметра выпуска версии .
Qt Creator поддерживает автозавершение кода и подсветку синтаксиса для добавленных библиотек после успешной сборки проекта и ссылки на них.
Для добавления библиотек
- В представлении Projects щелкните правой кнопкой мыши имя проекта, чтобы открыть контекстное меню, и выберите Добавить библиотеку .
- Следуйте инструкциям мастера.
Для получения дополнительной информации о настройках файла проекта см. Объявление других библиотек.
Пример добавления внутренних библиотек
Чтобы добавить в проект внутреннюю библиотеку:
- Выберите файл > Новый файл или проект > Библиотека > Библиотека C ++ .
- Выберите Выберите , чтобы открыть диалоговое окно «Местоположение проекта ».
- В поле Имя укажите имя библиотеки. Например, mylib .
- Следуйте инструкциям мастера, пока не дойдете до диалогового окна Project Management . В списке Добавить как подпроект к проекту выберите проект. Например, myapp .
- В представлении Projects щелкните правой кнопкой мыши имя проекта, чтобы открыть контекстное меню, и выберите Добавить библиотеку > Внутренняя библиотека > Далее .
- В поле Library выберите mylib , а затем выберите Next .
- Выберите Finish , чтобы добавить следующее объявление библиотеки в файл проекта:
win32: CONFIG (release, debug | release): LIBS + = -L $$ OUT_PWD /../../../ projects / mylib / релиз / -lmylib иначе: win32: CONFIG (отладка, отладка | выпуск): LIBS + = -L $$ OUT_PWD /../../../ projects / mylib / debug / -lmylib еще: unix: LIBS + = -L $$ OUT_PWD /../../../ проекты / mylib / -lmylib INCLUDEPATH + = $$ PWD /../../../projects/mylib DEPENDPATH + = $$ PWD /../../../ projects / mylib win32: CONFIG (выпуск, отладка | выпуск): PRE_TARGETDEPS + = $$ OUT_PWD /../../../ projects / mylib / release / mylib.lib иначе: win32: CONFIG (отладка, отладка | выпуск): PRE_TARGETDEPS + = $$ OUT_PWD /../../../ projects / mylib / debug / mylib.lib еще: unix: PRE_TARGETDEPS + = $$ OUT_PWD /../../../ projects / mylib / libmylib.a
.
сторонних библиотек | Qt 5.15
Использование сторонней библиотеки с Qt — простой процесс. Предположим, вам известна кроссплатформенная библиотека, которая принимает аудиосэмплы кошачьего мяуканья и переводит их на английские слова. Эта библиотека называется CatWhisperer
и содержит несколько файлов, которые она предоставляет как часть своей библиотеки. В вашем проекте MyQtApp
эти файлы хранятся в папке с именем 3rdparty
:
- MyQtApp /
- MyQtApp.pro
- src /
- 3rdparty /
- CatWhisperer
- включить /
- lib /
- libCatWhisperer.so
- CatWhisperer.lib
- бин /
- CatWhisperer
Для использования библиотеки CatWhisperer
в MyQtApp
, qmake
требует расположения и имен библиотек CatWhisperer
. По желанию вы также можете:
- Укажите расположение исходного кода
CatWhisperer
, чтобы вам не приходилось вводить полный путь к каждому файлу, когда вы включаете их в свой собственный код. - Выберите место назначения, в котором будет создан исполняемый файл
MyQtApp
.
Информация, приведенная выше, содержится в файле .pro
, так что qmake
может анализировать его и создавать файлы сборки. Файлы Makefile содержат всю информацию, необходимую вашему компилятору и компоновщику для создания вывода, будь то исполняемый файл, другой файл библиотеки и т. Д. В следующих разделах объясняется синтаксис, с которым qmake
ожидает от вас предоставления этой информации.
Исходный код
Уметь писать
#include
вместо
#include <3rdparty / CatWhisperer / include / CatWhisperer.h>
, вы можете указать путь к каталогу CatWhisperer
include
, используя переменную INCLUDEPATH:
INCLUDEPATH + = 3rdparty / CatWhisperer / включает
Файлы библиотеки
Чтобы qmake
знал, где найти файлы библиотеки CatWhisperer
, используйте переменную LIBS:
LIBS + = -L "3rdparty / CatWhisperer / lib" -lCatWhisperer
Первая часть выражения сообщает компоновщику, в каком каталоге он должен искать файлы библиотеки.Двойные кавычки необходимы только тогда, когда путь содержит пробелы, поэтому мы могли бы опустить их в этом примере.
Вторая часть сообщает компоновщику, с какими библиотеками компоноваться. У нас есть два разных файла библиотеки для платформ UNIX и Windows соответственно: libCatWhisperer.so
и CatWhisperer.lib
. Нет необходимости указывать ни расширение .lib
, ни префикс lib
(на платформах UNIX).
Каталог назначения
По умолчанию qmake
создает исполняемый файл в том же каталоге, что и .pro
файл. Мы можем выбрать наш собственный каталог с помощью переменной DESTDIR:
Вот и все! Теперь вы можете использовать библиотеку CatWhisperer
в своем проекте. Окончательный файл .pro
выглядит так:
TARGET = MyQtApp ШАБЛОН = приложение INCLUDEPATH + = 3rdparty / CatWhisperer / включить ИСТОЧНИКИ + = src / main.cpp LIBS + = -L "3rdparty / CatWhisperer / lib" -lCatWhisperer
.
Класс QLibraryInfo | Qt Core 5.15.1
Класс QLibraryInfo предоставляет информацию о библиотеке Qt. Подробнее …
Заголовок: | #include |
qmake: | QT + = ядро |
Открытые типы
enum | LibraryLocation {PrefixPath, DocumentationPath, HeadersPath, LibrariesPath, LibraryExecutablesPath,…, SettingsPath} |
Статические открытые члены
Подробное описание
Многие элементы информации устанавливаются при настройке и сборке Qt.Этот класс предоставляет абстракцию для доступа к этой информации. Используя статические функции этого класса, приложение может получить информацию об экземпляре библиотеки Qt, которую приложение использует во время выполнения.
Вы также можете использовать файл qt.conf
для переопределения жестко заданных путей, которые скомпилированы в библиотеку Qt. Для получения дополнительной информации см. Документацию Использование qt.conf.
См. Также QSysInfo и Использование qt.conf.
Документация по типу элемента
перечисление QLibraryInfo :: LibraryLocation
Этот тип перечисления используется для указания конкретного спецификатора местоположения:
Константа | Значение | Описание |
---|---|---|
QLibraryInfo :: PrefixPath | 0 | Префикс по умолчанию для всех путей. |
QLibraryInfo :: DocumentationPath | 1 | Расположение документации после установки. |
QLibraryInfo :: HeadersPath | 2 | Расположение всех заголовков. |
QLibraryInfo :: LibrariesPath | 3 | Расположение установленных библиотек. |
QLibraryInfo :: LibraryExecutablesPath | 4 | Расположение установленных исполняемых файлов, необходимых библиотекам во время выполнения. |
QLibraryInfo :: BinariesPath | 5 | Местоположение установленных двоичных файлов Qt (инструменты и приложения). |
QLibraryInfo :: PluginsPath | 6 | Расположение установленных подключаемых модулей Qt. |
QLibraryInfo :: ImportsPath | 7 | Местоположение установленных расширений QML для импорта (QML 1.x). |
QLibraryInfo :: Qml2ImportsPath | 8 | Местоположение установленных расширений QML для импорта (QML 2.Икс). |
QLibraryInfo :: ArchDataPath | 9 | Расположение общих архитектурно-зависимых данных Qt. |
QLibraryInfo :: DataPath | 10 | Расположение общих архитектурно-независимых данных Qt. |
QLibraryInfo :: TranslationsPath | 11 | Местоположение информации о переводе для строк Qt. |
QLibraryInfo :: ExamplesPath | 12 | Расположение примеров при установке. |
QLibraryInfo :: TestsPath | 13 | Расположение установленных тестовых наборов Qt. |
QLibraryInfo :: SettingsPath | 100 | Местоположение для настроек Qt. Неприменимо в Windows. |
См. Также местоположение ().
Документация по функциям-членам
[статические]
bool QLibraryInfo :: isDebugBuild ()
Возвращает true
, если эта сборка Qt была построена с включенной отладкой, или false, если она была построена в режиме выпуска.
Эта функция была представлена в Qt 5.0.
[статические]
QString QLibraryInfo :: location (QLibraryInfo :: LibraryLocation loc )
Возвращает местоположение, указанное в loc .
[статические]
QVersionNumber QLibraryInfo :: version ()
Возвращает версию библиотеки Qt.
Эта функция была представлена в Qt 5.8.
См. Также qVersion ().
© 2020 Компания Qt Company Ltd.
Включенная сюда документация является собственностью
их владельцы. Представленная здесь документация лицензирована в соответствии с условиями лицензии GNU Free Documentation License версии 1.3, опубликованной Free Software Foundation. Qt и соответствующие логотипы являются товарными знаками компании Qt Company Ltd. в Финляндии и / или других странах по всему миру.Все остальные товарные знаки являются собственностью
их владельцев.
.
Аттика | Open Collaboration Services API | API | LGPLv2.1 + | |
Авахи | Привязки Qt4 для avahi, службы D-BUS для Zeroconf и Bonjour | Привязки, Общение | LGPLv2.1 + | |
Балу | Baloo — это фреймворк для индексации и поиска файлов | Развитие | LGPLv2.1+ | |
BluezQt | Оболочка Qt для BlueZ 5 DBus API | Общение | LGPLv2.1 + | |
Бриз Иконки | Тема значка Breeze | Произведение искусства | LGPLv2.1 + | |
Симпатичный | Веб-фреймворк, использующий простой подход фреймворка Catalyst (Perl). | | Интернет | LGPLv2 |
CuteReport | Сообщить о решении | | Печать | GPLv3 +, Коммерческий |
google-diff-match-patch | Библиотеки Diff, Match и Patch для простого текста | Текст | Apache2.0 | |
Клиент Echo Nest | Библиотека Qt для связи с The Echo Nest | Мультимедиа, API | LGPL | |
Enginio | Клиентская библиотека Enginio для платформы Qt. Предоставляет клиентским приложениям API Qt C ++ и QML. | | Данные, API, QML | GPLv3, LGPLv2.1 |
eXaro | Механизм отчетов | | Печать | GPLv3, LGPLv3 |
Дополнительные модули CMake | Дополнительные модули CMake | | Развитие | LGPLv2.1+ |
Интеграция фреймворка | Плагины интеграции рабочего пространства и кросс-фреймворка | Рабочий стол | LGPLv2.1 + | |
GCF | Базовая структура компонентов | | Развитие | GPLv2, GPLv3, Коммерческий |
Библиотека GLC | Библиотека для высокопроизводительных 3D-приложений на основе OpenGL | | Графика | LGPLv3 + |
инъекция | Внедрение зависимости | | Развитие | LGPLv2.1 |
Джрин | Клиентская библиотека XMPP | Общение | GPLv2 + | |
KДеятельность | Среда выполнения и библиотека для организации работы пользователя в отдельных действиях | Рабочий стол | LGPLv2.1 + | |
KActivitiesStats | Библиотека для доступа к данным об использовании, собранным системой действий. | Рабочий стол | LGPLv2.1+ | |
KАрхив | Сжатие файлов | Данные | LGPLv2.1 + | |
KAuth | Абстракция от системной политики и функций аутентификации | Безопасность, API | LGPLv2.1 + | |
КЗаметки | Поддержка закладок и формата XBEL | Интернет | LGPLv2.1+ | |
KCalendarCore | Библиотека доступа к календарю KDE | LGPLv2.1 + | ||
KCMUtils | Утилиты для работы с KCModules | Рабочий стол | LGPLv2.1 + | |
KCodecs | Кодировка текста | Текст | LGPLv2.1 + | |
KЗавершение | Помощники и виджеты автозавершения текста | Текст, Виджеты | LGPLv2.1+ | |
KConfig | Система конфигурации | Развитие | LGPLv2.1 + | |
KConfigWidgets | Виджеты для диалоговых окон конфигурации | Развитие, Виджеты | LGPLv2.1 + | |
KКонтакты | Поддержка контактов vCard | LGPLv2.1 + | ||
KCoreAddons | Дополнения к QtCore | Текст, Данные | LGPLv2.1+ | |
KCrash | Поддержка анализа сбоев приложений и отчетов об ошибках из приложений | Развитие | LGPLv2.1 + | |
KDAV | Реализация протокола DAV с помощью KJobs | LGPLv2.1 + | ||
KDBusAddons | Дополнения к QtDBus | Рабочий стол | LGPLv2.1+ | |
KДекларативная | Обеспечивает интеграцию QML и KDE Frameworks | Рабочий стол, QML | LGPLv2.1 + | |
KDED | Расширяемый демон для предоставления услуг системного уровня | Рабочий стол | LGPLv2.1 + | |
Библиотеки KDE 4 | Платформа разработки KDE | | Рабочий стол | LGPLv2.1+ |
KDELibs 4 Поддержка | Помощь при переносе из KDELibs4 | Развитие | LGPLv2.1 + | |
Библиотеки KDE PIM | Библиотеки KDE PIM | | Данные, Общение | LGPLv2.1 + |
KDesignerPlugin | Инструмент для создания настраиваемых плагинов виджетов для Qt Designer / Creator | Развитие | LGPLv2.1+ | |
КДЕСУ | Интеграция с su для повышенных привилегий | Безопасность, Рабочий стол | LGPLv2.1 + | |
KDE WebKit | Интеграция KDE для QtWebKit | Интернет | LGPLv2.1 + | |
KDE DNS-SD | Абстракция до системных функций DNSSD | Привязки, Общение | LGPLv2.1+ | |
KDocИнструменты | Генерация документации из docbook | Развитие, Текст | LGPLv2.1 + | |
KD отчеты | Генератор отчетов | | Печать | LGPLv2.1 +, Коммерческий |
KD SOAP | Клиентский и серверный компонент SOAP | | API, Развитие | LGPLv2.1+, Коммерческий |
KEmoticons | Поддержка смайлов и тем смайликов | Произведение искусства | LGPLv2.1 + | |
KF5Зонтик | Удобные функции CMake для платформ KDE | Развитие | LGPLv2.1 + | |
KFileAudioPreview | Предварительный просмотр аудиофайлов | Мультимедиа | LGPLv2.1+ | |
KFileMetaData | Библиотека метаданных файла и извлечения текста | Данные | LGPLv2.1 + | |
KGlobalAccel | Добавить поддержку глобальных ярлыков рабочей области | Рабочий стол | LGPLv2.1 + | |
Дополнения для графического интерфейса KDE | Дополнения к QtGui | Виджеты | LGPLv2.1+ | |
KПраздники | Библиотека расчета отпуска | Данные | LGPLv2.1 + | |
KHTML | KHTML API | Интернет | LGPLv2.1 + | |
KI18n | Расширенная структура интернационализации | Развитие, Текст | LGPLv2.1 + | |
KIconThemes | Поддержка тем значков | Произведение искусства | LGPLv2.1+ | |
KIdleTime | Мониторинг активности пользователей | Рабочий стол | LGPLv2.1 + | |
KImageFormats | Плагины формата изображения для Qt | Графика, Данные | LGPLv2.1 + | |
KInit | Средство запуска процессов для ускорения запуска приложений KDE | Рабочий стол | LGPLv2.1+ | |
КИО | Абстракция доступа к ресурсам и сети | Общение, Данные | LGPLv2.1 + | |
Киригами | Плагины QtQuick для создания пользовательских интерфейсов на основе руководящих принципов пользовательского интерфейса KDE | Мобильный, QML | LGPLv2.1 + | |
KItemModels | Модели для системы Qt Model / View | Развитие | LGPLv2.1+ | |
KItemViews | Дополнения виджетов для модели / представления Qt | Виджеты, Развитие | LGPLv2.1 + | |
KJobWidgets | Виджеты для отслеживания экземпляров KJob | Виджеты | LGPLv2.1 + | |
KJS | Поддержка сценариев JS в приложениях | Интернет, Сценарии | LGPLv2.1+ | |
KJSEmbed | Встроенный JS | Интернет, Сценарии | LGPLv2.1 + | |
KLFBackend | Бэкэнд-библиотека KLatexFormula | Графика, Данные | GPLv2 + | |
KMediaPlayer | Интерфейс плагина для функций медиаплеера | Мультимедиа | LGPLv2.1 + | |
KNewStuff | Поддержка загрузки ресурсов приложения из сети | Данные, Общение | LGPLv2.1+ | |
KNotification | Абстракция для системных уведомлений | Рабочий стол | LGPLv2.1 + | |
KNotifyConfig | Система конфигурации для KNotify | Рабочий стол | LGPLv2.1 + | |
KPackage Framework | Библиотека для загрузки и установки пакетов небинарных файлов, поскольку они были плагином | Развитие | LGPLv2.1+ | |
KParts | Система плагинов, ориентированная на документы | Виджеты | LGPLv2.1 + | |
KPeople | Предоставляет доступ ко всем контактам и людям, которые их держат | Общение, Данные | LGPLv2.1 + | |
KPlotting | Легкая основа для построения графиков | Графика | LGPLv2.1+ | |
KPrintUtils | Диалоги печати | Печать | LGPLv2.1 + | |
КПты | Pty абстракция | Общение | LGPLv2.1 + | |
kQOAuth | OAuth 1.0 аутентификация | Безопасность, API | LGPLv2.1 + | |
KQuickCharts | Модуль QtQuick, предоставляющий высокопроизводительные диаграммы. | LGPLv2.1 + | ||
Kross | Написание сценариев многоязычных приложений | Сценарии | LGPLv2.1 + | |
KRunner | Система параллельных запросов | Рабочий стол | LGPLv2.1 + | |
KService | Расширенный самоанализ плагинов и сервисов | Развитие | LGPLv2.1+ | |
KTextEditor | Расширенный встраиваемый текстовый редактор | Текст, Виджеты | LGPLv2.1 + | |
KTextWidgets | Виджеты расширенного редактирования текста | Текст, Виджеты | LGPLv2.1 + | |
KUnitConversion | Поддержка преобразования единиц измерения | Данные | LGPLv2.1+ | |
KWallet Framework | Безопасный и единый контейнер для паролей пользователей | Безопасность | LGPLv2.1 + | |
KWayland | Qt-style API для взаимодействия с wayland-client и wayland-server API | Рабочий стол | LGPLv2.1 + | |
KWidgetsAddons | Дополнения к QtWidgets | Виджеты | LGPLv2.1+ | |
KWindowSystem | Доступ к оконной системе | Рабочий стол | LGPLv2.1 + | |
KXMLGUI | Настраиваемые пользователем главные окна | Виджеты | LGPLv2.1 + | |
KXmlRpcClient | Взаимодействие с сервисами XMLRPC | Общение | LGPLv2.1 + | |
Коммуни | Фреймворк IRC | | Общение | BSD |
LibEngsas | Виджеты для технических приложений | | Виджеты | LGPLv2.1+ |
Libkexiv2 | Привязки Qt для Exiv2, библиотеки для управления метаданными изображений | Графика, Привязки | GPLv2 + | |
Ласт фм | Библиотека Qt C ++ для веб-сервисов Last.fm | | API, Мультимедиа | GPLv3 |
libmm-qt | Оболочка Qt для ModemManager DBus API | Общение, Привязки | LGPL | |
libnm-qt | Оболочка Qt для NetworkManager DBus API | Общение, Привязки | LGPL | |
libqemf | Программа чтения изображений на основе Qt для метафайлов расширенного формата (*.ЭДС) | | Графика | GPLv3, Коммерческий |
QtLua | Фреймворк для встраивания Lua в приложения Qt | Сценарии | LGPLv3 + | |
Qxt | Классы утилит для Qt | | Развитие, Виджеты | BSD-3-Clause |
LimeReport | Механизм печати отчетов | | Печать | GPLv3 +, LGPLv2.1+ |
Log4Qt | Порт C ++ фреймворка логирования Log4j | | Развитие, логирование | Apache-2.0 |
Кошелек LXQt | Безопасное хранение данных во внутренней системе хранения или в KDE KWallet или GNOME libsecret | Безопасность | BSD | |
Мрамор | Мраморный виртуальный глобус | | Виджеты | LGPLv2.1 |
ModemManagerQt | Оболочка Qt для ModemManager API | Общение, Привязки | LGPLv2.1 + | |
NetworkManagerQt | Оболочка Qt для NetworkManager API | Общение, Привязки | LGPLv2.1 + | |
Noron | Совместное использование удаленных объектов | | Развитие | GPLv3, LGPLv3 |
орех | Объектно-реляционный преобразователь для Qt5 | | Данные | GPLv3, LGPLv3 |
O2 | Библиотека, инкапсулирующая OAuth 1.0 и 2.0 потоки аутентификации клиента | Безопасность, Привязки | Упрощенная лицензия BSD | |
Кислородные значки | Тема значка кислорода | Произведение искусства | LGPLv2.1 + | |
PackageKit | Привязки Qt для PackageKit, серверной части для управления установкой программного обеспечения | Привязки | GPLv2 + | |
Фонон | Абстракция мультимедийной платформы Phonon | Мультимедиа | LGPLv2.0+ | |
Plasma Framework | Среда выполнения пользовательского интерфейса на основе плагинов, используемая для написания основных пользовательских интерфейсов | Рабочий стол | LGPLv2.1 + | |
Polkit-qt-1 | Привязки Qt для PolicyKit | Привязки | LGPLv2.1 + | |
Попплер | Привязки Qt для Poppler, библиотеки рендеринга PDF | Привязки | GPLv2 + | |
Тюрьма | Уровень абстракции штрих-кода, обеспечивающий единый доступ к генерации штрих-кодов | Графика, Печать | LGPLv2.1+ | |
PulseAudioQt | Оболочка Qt для PulseAudio API | Мультимедиа, Привязки | LGPLv2.1 + | |
Цель | Предлагает доступные действия для определенной цели | Рабочий стол | LGPLv2.1 + | |
PythonQt | Платформа для встраивания Python в приложения Qt | Привязки | LGPLv2.1+ | |
QCA | Криптографическая архитектура Qt | Безопасность | LGPLv2.1 + | |
QCustomPlot | Виджет построения для Qt | Графика | GPLv3 + | |
QDataCube | Datacube для Qt | | Данные, Виджеты | LGPL |
QDecimail | Библиотека десятичной арифметики для Qt framework | | Данные | LGPL v2.1 |
QDjango | ORM и структура HTTP-запросов / ответов | | Интернет | GPLv2.1 + |
QHttpEngine | HTTP-сервер и утилиты | | Интернет | Массачусетский технологический институт |
Блиц KDE | Библиотека эффектов изображения для KDE | Графика | BSD 3-пункт | |
QJson | Парсер JSON для Qt | Данные | LGPL | |
qlogsystem | qlogsystem — очень эффективная и простая в использовании библиотека логгеров | | Развитие, логирование | LGPLv2.1 |
QMarkdownTextEdit | Виджет C ++ Qt QPlainTextEdit с выделением уценки и некоторыми другими полезностями. | | Текст | Массачусетский технологический институт |
QMdnsEngine | Библиотека Multicast DNS для Qt | | Интернет | Массачусетский технологический институт |
QOAuth | Библиотека для схемы авторизации OAuth | Безопасность, API | LGPL | |
QQC2StyleBridge | Стиль QtQuickControls 2, который интегрируется с рабочим столом | LGPLv2.1+ | ||
QScintilla | Qt-порт элемента управления редактора Scintilla C ++ | | Текст | GPLv2, GPLv3, Коммерческий |
QSint | Коллекция виджетов Qt с открытым исходным кодом | | Виджеты | LGPL |
QSqlMigrator | QSqlMigrator — отслеживайте миграции вашей базы данных | | Данные | LGPLv2.1, GPLv3 |
QtGStreamer | Привязки Qt для GStreamer | Привязки, Мультимедиа | LGPLv2.1 + | |
QtAccountsService | API в стиле Qt для службы Freedesktop.org AccountsService DBus | Развитие | LGPLv3 + | |
QtArg | Анализ командной строки | Развитие | Массачусетский технологический институт | |
QtAV | Кросс-платформенный фреймворк для воспроизведения мультимедиа, основанный на Qt и FFmpeg. | | Мультимедиа | LGPLv2.1 |
QtDropbox | Qt Dropbox | | API | LGPLv3 + |
QtFFmpegWrapper | Qt FFmpeg Wrapper для кодирования и декодирования видеокадров | | Мультимедиа | BSD-3-Clause |
QtFirebase | Попытка перенести API Firebase C ++ в Qt + QML | QML, Мобильный, API, Данные | Массачусетский технологический институт | |
Qtilities | Строительные блоки для приложений Qt | Логирование, Виджеты | GPLv3, LGPLv2.1, Коммерческий | |
Фреймворк установщика Qt | Инструменты и утилиты для создания установщиков для поддерживаемых настольных платформ Qt. | | Развитие | LGPLv2.1 + |
QtKeychain | Независимый от платформы Qt API для безопасного хранения паролей | | Безопасность | BSD-2 |
QtPromise | Реализация обещаний / A + для Qt / C ++ | Данные, Развитие | Массачусетский технологический институт | |
QtRPT | Механизм отчетов | | Печать | Apache 2.0 |
QtWebApp | Фреймворк веб-приложений, похожий на API сервлетов Java | | Интернет | LGPLv3 |
QtWebKit | Qt-порт WebKit | | Интернет | GPLv3, LGPLv2.1 + |
QTweetLib | Библиотека для доступа к Twitter | Общение | GPLv2 | |
QuaZIP | Оболочка Qt / C ++ для пакета ZIP / UNZIP | Данные | LGPLv3 + | |
Qwt | Виджеты для технических приложений | Виджеты, Графика | Лицензия Qwt 1.0 | |
QwtPlot3D | Виджеты 3D-сюжета | Графика | zlib | |
QXmpp | Клиентская и серверная библиотека XMPP | Общение | LGPL 2.1 или новее | |
QxOrm | Объектно-реляционное отображение (ORM) на основе Qt | | Данные | GPLv3, Коммерческий |
Qyoto | Моно-привязки для основных библиотек Qt | Привязки | LGPLv2.1+ | |
Snorenotify | Фреймворк уведомлений Snorenotify | | Общение | LGPLv3 |
Твердый | Аппаратная интеграция и обнаружение | Развитие | LGPLv2.1 + | |
Сонет | Поддержка проверки орфографии | Текст | LGPLv2.1 + | |
Сопрано | Qt / C ++ RDF framework | Данные | LGPLv2.1+ | |
Монета | Qt интерфейс для библиотеки 3D визуализации Coin | | Графика, Привязки | GPL |
SQLate | типобезопасная поддержка SQL на основе шаблонов с использованием Qt | | Данные | LGPL |
Синдикация | Библиотека парсера RSS / Atom | LGPLv2.1+ | ||
Подсветка синтаксиса | Подсветка синтаксиса | Текст | LGPLv2.1 + | |
Задачи | простая библиотека с одним заголовком, которая позволяет асинхронное программирование на Qt / C ++ с использованием задач и продолжений | | Развитие | BSD |
Телепатия | Привязки Qt для инфраструктуры связи Telepathy | Привязки, Общение | LGPLv2.1+ | |
ThreadWeaver | Платформа многопоточности высокого уровня | Развитие | LGPLv2.1 + | |
Древесная лягушка | Фреймворк для разработки веб-приложений | | Интернет | BSD-3-Clause |
Туфао | Асинхронный веб-фреймворк для C ++, построенный поверх Qt | | Интернет | Библиотека: LGPLv2, Документация и примеры: MIT |
VLC-Qt | VLC-Qt — простая библиотека для подключения приложения Qt к libVLC | | Привязки, Мультимедиа | LGPLv3 |
Log4Qt | Порт C ++ фреймворка логирования Log4j | | Развитие, логирование | Apache-v2.0 |
QextSerialPort | Кроссплатформенный интерфейс для последовательных портов. | | Общение | Массачусетский технологический институт |
QsLog | Простой регистратор Qt | Логирование, Развитие | BSD-3-Clause | |
QtIOCContainer | Фреймворк приложения, вдохновленный концепцией инверсии управления | Развитие | LGPLv2 | |
Клиент Qt REST | Qt REST Client Framework для работы JSON / XML API | | Общение, API | Массачусетский технологический институт |
AdCtl | Google Play Auth, архивы и рейтинги, AdMob и Analytics для Qt / QML на Android / iOS | Мобильный, QML | Модифицированная BSD | |
libqinfinity | Обертка Qt вокруг libinfinity, библиотеки для совместного редактирования | Общение | GPLv2 + | |
libsystemd-qt | Оболочка только для Qt для Systemd API | Привязки | LGPLv3 | |
Новиль | Компонент редактора исходного кода для Qt | Развитие, Текст | GPL | |
osgQtQuick | Модули OpenSceneGraph QML | | Графика, QML | LGPLv2.1+ |
QanMenuBar | QanMenuBar — это легкий компонент динамического меню QML, похожий на PieMenu | | QML | GPLv3 + |
QAudioCoder | Библиотека для декодирования, кодирования и преобразования аудиофайлов | Мультимедиа | LGPLv3 + | |
QTermWidget | Встраиваемый виджет консоли | Виджеты | LGPLv2 + | |
QtSharp | Мононуклеоз/.Привязки .NET для Qt | Развитие | Apache-v2.0 | |
QuickProperties | QuickProperties — это библиотека C ++ / QML для просмотра и редактирования свойств QObject в Qt5. | | QML | GPLv3 + |
QuickQanava | QuickQanava — это библиотека рисования графиков C ++ / QML для Qt5. | | Графика, QML | GPLv3 + |
Надстройка сертификата Qt | Надстройка сертификата Qt | Безопасность | LGPLv2.1 | |
Qt Xlsx | Программа чтения и записи файлов .xlsx для Qt5 | | Данные | Массачусетский технологический институт |
cairoQPaintDevice | Реализация QPaintDevice, использующая графическую библиотеку Cairo в качестве серверной части | | Графика | GPLv3 + |
CTK | Набор инструментов для биомедицинских вычислений изображений | Графика, Виджеты, Данные | Апач-2.0 | |
CuteTest | Модульное тестирование Qt | | Развитие | LGPLv3 +, BSD-3-пункт, Apache-2.0 |
EasyQtSql | Облегченная библиотека C ++ 11, содержащая только заголовки, для быстрого и простого выполнения запросов SQL с помощью QtSql. | | Данные | Массачусетский технологический институт |
FF7tk | Инструментарий для работы с данными из Final Fantasy 7 | | Данные | GPLv3 + |
KD отчеты | Генератор отчетов | | Печать | LGPLv2.1+, Коммерческий |
Кодэ | Библиотека генерации кода | Развитие, Данные | LGPLv2.1 + | |
TmdbQt | Библиотека для запросов к API базы данных фильмов (themoviedb.org) | | API, Данные | LGPLv2.1 + |
Тип пантомимы | Бэкпорт API миметипов Qt 5 в Qt 4 | | Развитие | LGPLv2.1, GPLv3 |
neiasound | Оболочка OpenAl для приложений и игр Qt | Мультимедиа, Привязки | BSD, 2 предложения | |
QDataCube | Datacube для Qt | | Данные, Виджеты | LGPL |
qdbf | Библиотека для работы с файлами dbf | Данные | LGPLv2.1 + | |
QFB | Клиентская библиотека для доступа к Facebook Graph API | API | GPLv3 + | |
QicsTable | Высокопроизводительный виджет таблицы Qt | | Виджеты, Данные | GPLV3 +, LGPLv2.1+, Коммерческий, Оценка |
QJsonRpc | Реализация протокола JSON-RPC | Данные, Общение | LGPLv2.1 + | |
QSerialDevice | Кросс-платформенная библиотека для доступа к последовательным устройствам | | Общение | GPLv2 + |
QSint | Коллекция виджетов Qt с открытым исходным кодом | | Виджеты | LGPL |
QSkinny | легкая библиотека Qt UI | | Развитие | LGPLv2 |
QFtp | Реализация FTP | | Общение | LGPLv2.1, GPLv3, Коммерческий |
QtGamepad | Чтение ввода с геймпадов | Общение | Массачусетский технологический институт | |
QtGoogleSpeech | Библиотека для использования службы Google Speech | API | LGPL | |
QHttp | Реализация HTTP | | Интернет | LGPLv2.1, GPLv3, Коммерческий |
QtModeling | Платформа для поддержки проектирования на основе моделей | | Развитие | LGPLv2.1, GPLv3 |
qtoolbox | Набор инструментов для разработки Qt | | Данные, логирование | Apache-2.0 |
qtoptimization | Модуль для алгоритмов оптимизации | | Развитие | LGPLv2.1, GPLv3 |
QtORM | Объектно-реляционная модель, вдохновленная Django | | Интернет, Данные | LGPLv2.1 |
Клиент Qt REST | Qt REST Client Framework для работы JSON / XML API | | Общение, API | Массачусетский технологический институт |
QtRPT | Механизм отчетов | | Печать | Apache 2.0 |
QtSpeech | Кросс-платформенный API для доступа и использования системных систем преобразования текста в речь | | Привязки, Мультимедиа | LGPLv3 + |
qTUIO | Интерфейс к TUIO, протоколу для осязаемых мультисенсорных поверхностей | Мобильный | GPLv3 + | |
qtuiotouch | Плагин Qt для устройств ввода TUIO | Мобильный | Массачусетский технологический институт | |
QtUnits | Библиотека преобразования модулей времени выполнения Qt, построенная с использованием (и совместимая с) Boost :: Units. | | Данные | BSD, 2 предложения |
QtVkontakte | Qt-обертка вокруг Android SDK Вконтакте (https://vk.com, Российская социальная сеть) | Мобильный | GPL2 | |
QtWebSockets | Реализация клиента и сервера WebSockets в Qt. | | Общение | LGPLv2.1+ |
.