Я ищу способ специализировать виджет во время выполнения.У меня есть форма, созданная с помощью Qt Designer.В этой форме есть виджет, который отображает данные пользователя, такие как имя, возраст и так далее.Затем пользователь выбирает файл, и в соответствии с типом виджет должен отображать дополнительную информацию (как, например, в OO, например, человек -> студент, учитель).
Я попытался поместить пустой QWidget в мою форму, назначил человекавиджет к нему, и если пользователь нажимает кнопку, я вызываю deleteLater()
на человека и назначаю new Student()
.Это работает, но новый виджет тогда не следует макету.
Я также нашел QStackedWidget.Кажется, это работает, но поскольку все возможные виджеты создаются при показе формы, даже если они никогда не используются, этот способ не выглядит правильным.
Каким образом это можно сделать?
Редактировать: Я чувствую, что мой вопрос немного неясен.Какой механизм Qt следует использовать, если кто-то хочет заменить QWidget специализированной (унаследованной) версией исходного виджета?Я ищу Qt способ сделать это.