Можно ли использовать файл .ui из Qt Designer в Qt Designer в качестве пользовательского виджета? - PullRequest
0 голосов
/ 09 февраля 2020

Я всегда думал, что можно просто создать новый виджет в Qt-Designer, сохранить его как файл .ui; и затем импортируйте этот файл .ui обратно в Qt Designer как пользовательский виджет. Но теперь я решил попробовать, и я смотрю на net, и не могу найти никаких ссылок на это.

Итак, кто-то может подтвердить, если можно использовать только Файл .ui как шаблон для файла пользовательского виджета в Qt Designer - без кода C ++ или Python? Если да, то как ты это делаешь?

1 Ответ

0 голосов
/ 09 февраля 2020

Ответ, предоставленный @ eyllanes c, правильный, воспринимая ваш вопрос буквально. Вы сказали: «без какого-либо C ++ или Python кода», и здесь кроется проблема. Но если вы можете отказаться от этого ограничения, есть надежда.

Файлы .ui - XML. Обычно в проекте C ++ инструмент Qt "ui c" переводит каждый файл ".ui" в заголовок, который входит в исходный файл. cpp и компилируется как обычно. Есть и другой способ. Qt имеет модуль uitools, предоставляющий класс QUiLoader для загрузки виджетов во время выполнения из файлов .ui динамически (включая сигналы, подключенные во время выполнения, и слоты между их компонентами). Есть несколько примеров, иллюстрирующих эту технику: Text Finder , Calculator Builder и World Time Clock Builder . Вы также можете создавать плагины для дизайнера, добавляя свои собственные виджеты в палитру дизайнера, как, например, Плагин мирового времени .

Итак, предложение таково: создайте Виджет плагина дизайнера, который загружает файлы .ui во время выполнения (из файлов на диске или встроенных ресурсов). Это требует некоторого кода и работы, но он будет скомпилирован и установлен только один раз, и вы сможете создать его любое количество раз в разных проектах с разными формами .ui.

...