У меня проблемы с правильной работой виджета qwt с Qt-Creator

У меня проблемы с корректной работой qwt 6.1.0 с Qt-Creator 5.1.0. Он работает правильно, когда я запускаю автономную версию Qt-Designer, и все компилируется и работает правильно, когда я использую Qt-Creator. Однако конструктор, встроенный в Qt-Creator, неправильно отображает виджеты qwt в любых формах и не дает мне возможности добавлять новые виджеты qwt.

Я использую Qt Creator 5.1.0 для 64-битной Windows (VS2012 с OpenGL). Я также скачал и скомпилировал Qwt 6.1.0 с помощью вышеупомянутого Qt-Creator, просто открыв файл qwt.pro и скомпилировав его. После того, как он был скомпилирован, я использовал команды «nmake» и «nmake install» из командной строки Visual Studio, как указано в инструкциях Qwt (http://qwt.sourceforge.net/qwtinstall.html). Затем я скопировал qwt_designer_plugin.dll в каталоги C:\Qt\Qt5.1.0\Tools\QtCreator\bin\plugins\designer\ и C:\Qt\Qt5.1.0\5.1.0\msvc2012_64_opengl\plugins\designer\.

У кого-нибудь есть предложения? Я могу вручную запустить Qt-Designer и просто скомпилировать с помощью Qt-Creator, но меня раздражает необходимость постоянно переключаться туда-сюда и не иметь возможности использовать конструктор, встроенный в Qt-Creator.

РЕДАКТИРОВАТЬ № 1: я также установил переменную среды пути в C:\Qwt-6.1.0\lib\, как указано в документации по установке qwt. Кроме того, я установил следующее в файле проекта Qt (.pro), который я тестирую:

CONFIG  += qwt
INCLUDEPATH += C:\Qwt-6.1.0\include\
LIBS += C:\Qwt-6.1.0\lib\

person Xiver    schedule 23.08.2013    source источник


Ответы (2)


Причина может заключаться в совместимости вашего QTCreator с АКТУАЛЬНОЙ структурой QT, для которой вы построили QWT.

Пакет Qt 5.1.1 для 64-разрядной версии Windows (VS 2012, OpenGL, 522 МБ), представленный на сайте QT-Project.org/Download, содержит библиотеки QT, созданные для < strong>MSVCR110 (C++ 2012) 64 бита, тогда как фактический QTCreator.exe создан на основе MSCVR100 (C++ 2010). Вот почему загрузка подключаемого модуля QWT успешно формирует автономный конструктор QT, который входит в структуру QT, но не создатель QT, который находится в каталоге Tools/. Чтобы проверить это, загрузите исполняемый файл QTCreator в Dependency Walker, и вы увидите.

Я рекомендую вам загрузить исходный код QT, собрать его с помощью вашего компилятора, а затем скомпилировать QWT с помощью того же компилятора. Немного утомительно, но, по крайней мере, вы будете уверены, что ваши плагины загрузятся.

person Darien Pardinas    schedule 22.11.2013
comment
Это то, что в итоге у меня получилось. После пересборки всего тем же компилятором я смог заставить все работать вместе. - person Xiver; 11.01.2014

В соответствии с документами вы должны настроить переменную PATH:

set PATH=%PATH%;${QWT_ROOT}\lib

Простого копирования dll недостаточно, если вы не скомпилировали свой qwt «автономный»:

Если подключаемый модуль не был собран вместе с библиотекой Qwt (см. QwtDesignerSelfContained в qwtconfig.pri), Qt Designer/Creator также должен найти библиотеки Qwt.

И кстати... Нет Qt-Creator 5.0.1. Вы имеете в виду Qt 5.0.1. Qt-Creator — это всего лишь инструмент в вашем пакете Qt.

person Greenflow    schedule 23.08.2013
comment
Спасибо за ваш быстрый ответ. К сожалению, я уже установил переменную среды пути в C:\Qwt-6.1.0\lib\. Я также понимаю, что C:\Qwt-6.1.0\ не совсем совпадает с тем, где у меня установлены остальные компоненты Qt c:\QT\, но это было значение по умолчанию, непосредственно используемое в файлах .pri. - person Xiver; 24.08.2013
comment
Вы раньше этого не писали. ;-) Если это не так, возможно, как указано в документации, ваш Qt-Creator несовместим. Даже если вы скомпилировали свой qwt самостоятельно, это не означает, что бинарный файл Qt-Creator был скомпилирован тем же или совместимым компилятором. Вы можете скомпилировать свой Qt-Creator самостоятельно. Это не так сложно. Но раньше: QT_DEBUG_PLUGINS. Я согласен с документами: отладка, почему плагины не загружаются, — это ад. - person Greenflow; 24.08.2013
comment
Я думаю, что я попытаюсь скомпилировать все это в течение этих выходных в соответствии с вашим предложением, и я дам вам знать, как это получается. Я просто нахожу странным, что он работает с дизайнером стенда, а не с тем, что встроен в творца. Еще раз спасибо! - person Xiver; 24.08.2013
comment
Вот кто-то с точно такой же проблемой: плагин Designer недоступен через qtcreator, встроенный в Designer"> stackoverflow.com/questions/17946192/. Нет гарантии, но тот факт, что автономный дизайнер видит плагины, а дизайнер в qt-creator нет, является сильным намеком на то, что это может быть несоответствие версии. - person Greenflow; 24.08.2013