Как создавать собственные виджеты для Qt Designer

Я прочитал учебники по Qt, я искал в сети, но не могу найти точный способ создания пользовательских виджетов с помощью Qt 5.8.x. В пример с этим руководство один может создавать виджеты для Qt 4.x, как я уже преуспел. Для Qt 5.8.x мне не хватает таких простых уроков.

Даже если вы используете мастер сборки в Qt для настройки таких пользовательских проектов виджетов, в итоге у вас не будет ни одной распознанной библиотеки виджетов.

Поэтому, во-первых, существует путаница с путем установки, который должен указывать make-файл при установке плагина.

В файле проекта можно найти раздел

target.path = $$[QT_INSTALL_PLUGINS]/designer
INSTALLS    += target

После простой установки версии Qt 5.8.0 с открытым исходным кодом Mingw на компьютере с Windows 7 по пути C: \ Qt \ Qt5.8.0 переменная «QT_INSTALL_PLUGINS» расширится до

C: \ Qt \ Qt5.8.0 \ 5.8 \ mingw53_32 \ плагинов

таким образом, «target.path» для

make install

будет читаться как

C: \ Qt \ Qt5.8.0 \ 5.8 \ mingw53_32 \ Plugins \ дизайнер

Но на простой установке Qt 5.8.0 с mingw дизайнер ищет свои плагины в

C: \ Qt \ Qt5.8.0 \ Tools \ QtCreator \ Bin \ Plugins \ дизайнер \

Как кто-то уже предлагал мне, нужно установить переменную окружения «QT_PLUGIN_PATH», где Qt Creator, а также Qt Designer (в подкаталоге «designer») ищет свои плагины. Итак, чтобы Qt Creator по-прежнему работал должным образом, нужно иметь установить переменную окружения «QT_PLUGIN_PATH» в

  • оригинальный путь, а также
  • путь установки, на который ссылается $$ [QT_INSTALL_PLUGINS]

Поэтому в моей среде Windows 7 я установил переменную «QT_PLUGIN_PATH» в

C: \ Qt \ Qt5.8.0 \ Tools \ QtCreator \ Bin \ плагинов; C: \ Qt \ Qt5.8.0 \ 5.8 \ mingw53_32 \ плагинов

После этого Qt Designer может найти библиотеку пользовательских виджетов сборки. Но Qt Designer не может загрузить библиотеку. Одна интересная вещь заключается в том, что дизайнер также отказывается от библиотек, предоставляемых установкой самого Qt.

  • при загрузке пользовательского виджета lib он говорит:

    «Не удалось загрузить … .dll: данная процедура не найдена»

  • при загрузке библиотек, предоставляемых самим дистрибутивом Qt, по пути C: \ Qt \ Qt5.8.0 \ 5.8 \ mingw53_32 \ plugins \ designer он говорит:

    «Не удалось загрузить … .dll: указанный модуль не найден»

Что я сделал для создания библиотеки, так это то, что я просто запустил мастер проектов, чтобы сгенерировать собственный виджет для Qt Designer. С таким сгенерированным проектом я получаю результат не загружаемой библиотеки, как упоминалось выше.

Что мне нужно изменить в файлах исходного кода / проекта, чтобы Qt Designer не смог правильно загрузить библиотеку?

Спасибо за любые подсказки или предложения!

0

Решение

Вы, кажется, используете компилятор MinGW.
Вы не можете создавать плагины с этим компилятором с помощью поставляемого по умолчанию Creator, так как он скомпилирован с Visual Studio 2013/2015 (в зависимости от версии Qt).
Из-за того, как библиотеки DLL работают в Windows, вы должны использовать тот же компилятор, что и Creator, скомпилированный для сборки плагина (иначе он не сможет его загрузить).

Перейдите к «About Qt Creator» в меню «Справка», чтобы проверить.

Также не забудьте собрать плагин в режиме Release.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]