У меня есть опыт создания графических интерфейсов в 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Предположим, что я хочу превратить эту часть графического интерфейса в компонент многократного использования, который я могу добавить к любому графическому интерфейсу, который я хочу. Как я могу это сделать?
Если бы это был C #, я бы создал новый пользовательский элемент управления, добавил бы элементы GUI, настроил код, который заставляет модуль работать в целом, и, возможно, настроил прослушиватели событий или свойства пользовательского элемента управления в целом. затем я могу создавать, добавлять и удалять их по желанию из остальной части графического интерфейса. Это то, что я хочу.
Задача ещё не решена.
Других решений пока нет …