Пользовательский виджет QtDesigner - PullRequest
0 голосов
/ 24 октября 2018

Добрый день,

  1. Я кодирую свой плагин QtDesigner.В соответствии с официальным документом я создал Collection подкласс QDesignerCustomWidgetCollectionInterface и реализовал отдельные плагины для каждого виджета через подклассы QDesignerCustomWidgetInterface .Я сделал это успешно и у меня есть плагин * .dll.Я копирую его в правильную папку \ plugins \ designer.

  2. Поскольку я работаю под Windows и использую prebuilding QtCreator от msvc2015, я должен перекомпилировать мой QtCreator из исходного кода с заданным mingw компилятор.Я сделал это успешно.Теперь я могу запустить свой перекомпилированный QtCreator из cmd с правильным окружением.

  3. После всех этих проблем я могу запустить QtCreator-mingw и посмотреть плагиныв дизайнерском поддоне и перетащите его в * .ui.Я могу редактировать атрибуты Q_PROPERTY через конструктор.

Моя проблема заключается в следующем: - После перетаскивания я вижу виджет, как было написано ранее (3);- После закрытия QtCreator-mingw и повторного открытия его в файле * .ui я не смог увидеть MyWidget и не смог редактировать Q_PROPERTY .

Примечание: - Я использую мастер пользовательского Qt Designer, и Коллекция была сгенерирована автоматически.- То же самое для плагинов виджетов.- Я только что отредактировал метод doXml .- Я не вижу виджет в режиме разработки, но компиляция и запуск завершены.Все MyWidget там.

Кто-нибудь знает, в чем корень моей проблемы?

1 Ответ

0 голосов
/ 26 октября 2018

Функция name возвращает AnalogConponent.Но мой виджет помещается в пространство имен gui::iocomp.Итак, когда я изменил имя, возвращаемое значение на return gui::iocomp::AnalogConponent и добавил аналогичную конструкцию к функции domXml, все работает отлично, и я могу снова открыть IDE с тем же результатом и увидеть правильное описание Q_PROPERTY в конструкторе (до того, как ониизменено на динамические параметры).

Я думаю, что официальный документ потерял этот аспект.

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