Введение
Qwt — популярная библиотека для построения графиков и технических виджетов в Qt: шкал, циферблатов, спектрограмм. Собрать её несложно, но на этапе подключения к проекту часто возникают вопросы: как прописать пути, почему виджеты не появляются в дизайнере, как подключить Qwt в Linux. В статье пошагово разберём подключение QWT к проекту Qt в Windows и Linux через qmake и CMake, а также использование QwtPlot в Qt Designer.
Подключение QWT в Windows через qmake
После сборки и установки библиотеки (команды qmake qwt.pro, make, make install) у вас будут каталоги lib и include. Их нужно указать в файле проекта. Удобно скопировать библиотеку в подкаталог qwt рядом с проектом:
win32 {
CONFIG(release, debug|release): LIBS += -L$$PWD/qwt/lib -lqwt
else:CONFIG(debug, debug|release): LIBS += -L$$PWD/qwt/lib -lqwtd
INCLUDEPATH += $$PWD/qwt/include
DEPENDPATH += $$PWD/qwt/include
}
Для отладочной сборки используется библиотека с суффиксом d (qwtd), для релизной — без него. Если собирается только один вариант, укажите именно его. Не забудьте при запуске положить qwt.dll (или qwtd.dll) рядом с exe-файлом, иначе программа не стартует.
Подключение через qwt.prf
При установке Qwt копирует файл qwt.prf в каталог установки (features). Если указать путь к нему, подключение сводится к одной строке:
# путь к каталогу features установленной Qwt
QMAKEFEATURES += C:/Qwt-6.3.0/features
CONFIG += qwt
Подключение QWT через CMake
Официального CMake-модуля у Qwt нет, поэтому создадим импортированную цель вручную:
set(QWT_ROOT "${CMAKE_SOURCE_DIR}/qwt")
add_library(Qwt::Qwt SHARED IMPORTED)
set_target_properties(Qwt::Qwt PROPERTIES
IMPORTED_LOCATION_RELEASE "${QWT_ROOT}/lib/qwt.dll"
IMPORTED_IMPLIB_RELEASE "${QWT_ROOT}/lib/libqwt.a"
IMPORTED_LOCATION_DEBUG "${QWT_ROOT}/lib/qwtd.dll"
IMPORTED_IMPLIB_DEBUG "${QWT_ROOT}/lib/libqwtd.a"
INTERFACE_INCLUDE_DIRECTORIES "${QWT_ROOT}/include"
INTERFACE_COMPILE_DEFINITIONS "QWT_DLL"
)
target_link_libraries(myapp PRIVATE Qwt::Qwt Qt6::Widgets Qt6::Svg)
Имена файлов библиотеки зависят от компилятора: для MinGW это libqwt.a, для MSVC — qwt.lib. Макрос QWT_DLL нужен при использовании динамической версии библиотеки.
QwtPlot в Qt Designer
Виджеты Qwt можно размещать на форме в дизайнере. Есть два способа: установить плагин Qwt для Qt Designer или воспользоваться функцией «Преобразовать в…» (promote).
Плагин для дизайнера и MinGW
Плагин дизайнера должен быть собран тем же компилятором, что и сам Qt Creator. Официальные сборки Qt Creator для Windows собираются компилятором MSVC. Поэтому плагин, собранный MinGW, не загрузится в дизайнере. Посмотреть, чем собран Qt Creator, можно в меню «Справка» → «О программе Qt Creator»: в строке «Основан на…» указан компилятор. Если собрать подходящий плагин не получается, используйте преобразование виджета.
Преобразование QWidget в QwtPlot
- Поместите на форму обычный виджет Widget.
- Щёлкните по нему правой кнопкой и выберите «Преобразовать в…».
- Имя базового класса: QWidget.
- Имя преобразованного класса: QwtPlot.
- Заголовочный файл: qwt_plot.h (или
qwt/qwt_plot.h, в зависимости от путей включения). - При желании отметьте «Глобальное включение», нажмите «Добавить», затем «Преобразовать».

Соберите проект. При запуске на форме появится пустой график QwtPlot со шкалами:

В дизайнере вместо графика будет виден серый прямоугольник: это нормально для преобразованных виджетов. Настраивать график (оси, кривые, сетку) нужно в коде.
Подключение QWT в Linux
В Ubuntu и Debian Qwt устанавливается из репозитория вместе с плагином для дизайнера, поэтому все виджеты Qwt сразу доступны на панели элементов:

sudo apt-get install libqwt-qt5-dev
sudo apt-get install libqt5svg5-dev
В файл проекта добавьте:
unix {
QT += svg
LIBS += -lqwt-qt5
INCLUDEPATH += /usr/include/qwt
DEPENDPATH += /usr/include/qwt
}
Обратите внимание на ведущий слеш в пути /usr/include/qwt: без него путь будет считаться относительным и заголовки не найдутся. Модуль svg нужен Qwt для работы с векторной графикой.
Частые ошибки
- undefined reference при сборке — неверный путь в LIBS или перепутаны отладочная и релизная версии библиотеки.
- Программа не запускается в Windows — рядом с exe нет qwt.dll.
- Виджеты не видны в дизайнере — плагин собран не тем компилятором. Используйте «Преобразовать в…».
- Не найден qwt_plot.h — проверьте INCLUDEPATH и путь в поле «Заголовочный файл».
Заключение
Подключение QWT к проекту Qt сводится к трём шагам: указать путь к заголовкам, подключить библиотеку нужной версии и при необходимости добавить модуль svg. В Windows виджеты удобнее размещать через «Преобразовать в…», а в Linux плагин дизайнера ставится вместе с пакетом. После этого QwtPlot готов к работе.