Добавление пользовательских виджетов в пользовательский интерфейс в Qt Creator - PullRequest
6 голосов
/ 26 февраля 2012

Часть Qt Designer в Qt Creator имеет много встроенных виджетов. Но допустим, я хочу добавить пользовательские виджеты, созданные в том же проекте qt, в файл интерфейса окна. Принимая эти шаги:

  1. Создайте новое приложение Qt GUI с главным окном, мы назовем это окно A.
  2. Добавьте новый виджет в проект, виджет просто использует стандартные компоненты пользовательского интерфейса, скажем кнопки. Мы назовем этот виджет B.
  3. Добавить экземпляр виджета B в окно A.

Теперь я знаю один способ сделать это, а именно:

  1. В окне A добавьте пустой виджет (или контейнер виджетов) из раздела контейнеров списка возможных виджетов. Мы назовем этот виджет C.
  2. Повысить его (виджет C) до виджета B.

Однако проблема в том, что дизайнер Qt Creator рассматривает его как универсальный QWidget. И как таковой, вы не можете делать такие вещи, как добавить его в сплиттер или подключить сигналы / слоты, специфичные для виджета.

Так есть ли другие способы добавить виджет B в окно A в файле пользовательского интерфейса, используя qt creator? Спасибо.

1 Ответ

1 голос
/ 16 октября 2012

Я не уверен, что понял ваш вопрос хорошо, поэтому я мог задать неправильный вопрос.Вы уверены, что ваш виджет "B" является подклассом QDesignerCustomWidgetInterface?Это должно раскрыть все, что предлагает ваш виджет / плагин ...

Последнее замечание: мой друг пытался добавить такой же виджет, как вы.И в конце описанной процедуры, которую вам сказал Lol4t0, он обнаружил, что вы должны компилировать плагин с тем же компилятором, с которым был скомпилирован qtcreator / designer.Это происходит потому, что, как мы знаем, c ++ не сохраняет совместимость ABI (а не, например, язык C), например: обработка имени может меняться от компилятора к компилятору, может изменяться способ загрузки данных в регистры ... и так далее.Мой друг пытался скомпилировать плагин с помощью mingw, но обнаружил, что qtcreator скомпилирован с компилятором visual studio.Поэтому, если вы хотите развернуть свой плагин в Windows, или вы компилируете свой плагин в Visual Studio, или вам нужно скомпилировать qtcreator / designer с нуля.

...