GUI Композиция в Qt

У меня есть опыт создания графических интерфейсов в Java, C # и C ++ с использованием WinAPI. Я пытаюсь использовать свой первый графический интерфейс на C ++, используя Qt, и у меня есть небольшая проблема перехода. В любой из трех других парадигм графического интерфейса я мог создавать свои собственные компоненты графического интерфейса, расширять существующие JPanels и т. Д. И в конечном итоге получить пользовательский элемент графического интерфейса, который я мог бы добавить в другие окна графического интерфейса. C # особенно хорош в этом, поскольку все, что я создаю, автоматически отображается в Панели инструментов после компиляции.

Из того, что я вижу, есть только два варианта в Qt, и я надеюсь, что мне чего-то не хватает. Варианты:

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

Проблема в том, что я хочу динамически добавлять / удалять элементы GUI во время выполнения. Например, у меня есть шаблон Model-View-Control. Вид и управление — это две разные панели в графическом интерфейсе. Когда я переключаюсь на другой вид на одной панели, я хочу удалить элемент управления с другой панели и заменить его на правильный элемент управления для нового вида.

Из того, что я могу сказать, я мог бы сделать это с помощью пользовательских виджетов, но это кажется чрезвычайно трудным делом для тонны второстепенных виджетов в композиции для большей возможности. И хотя я могу делать то, что мне нужно, в блокноте, я не могу понять, как динамически добавить что-то, что я сохранил в блокноте.

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

Любые предложения будут полезны

———————Улучшенный пример ———————

Позвольте мне использовать пример кода, который дал @ m7913d. (http://doc.qt.io/qt-5/qtwidgets-layouts-basiclayouts-example.htmlПредположим, что я хочу превратить эту часть графического интерфейса в компонент многократного использования, который я могу добавить к любому графическому интерфейсу, который я хочу. Как я могу это сделать?Элемент GUI

Если бы это был C #, я бы создал новый пользовательский элемент управления, добавил бы элементы GUI, настроил код, который заставляет модуль работать в целом, и, возможно, настроил прослушиватели событий или свойства пользовательского элемента управления в целом. затем я могу создавать, добавлять и удалять их по желанию из остальной части графического интерфейса. Это то, что я хочу.

0

Решение

Задача ещё не решена.

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

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

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