Как установить родителя виджета после того, как виджет уже был инициализирован (например, если виджет является параметром для вызова функции)? - PullRequest
0 голосов
/ 12 июня 2019

Я знаю, что обычно родители задаются с помощью аргумента конструктора, например, если вы хотите, чтобы в кадре была кнопка, которую вы могли бы сделать:

QFrame frame = new QFrame();
QPushButton* button = new QPushButton(frame);

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

Есть ли способ добавить уже существующий виджет в качестве дочернего к другому виджету? Или добавить нового потомка к существующему или несуществующему родителю?

1 Ответ

2 голосов
/ 13 июня 2019

(Отказ от ответственности: Ответ, явно украденный из комментария Г.М. (с разрешения - см. Выше;))

Просто используйте QWidget's setParent(QWidget *parent) метод.

Примечание: новый родитель становится владельцем QWidget (то есть освобождает его, когда родитель уничтожен и т. Д.), И вам нужно будет снова вызвать show() на виджете, чтобы сделать его видимым, когда смена родителей переходит QWidget с невидимым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...