Когда я динамически добавляю виджеты в окна, должен ли я указывать родителя?

Я должен делать:

auto btnDelete = new QPushButton(this);
btnDelete->setText("Delete");

или это безопасно:

auto btnDelete = new QPushButton("Delete");

И почему?

Я добавляю это с помощью: this->ui->formLayout->addRow(btnDelete, editForm);


person cnd    schedule 08.12.2014    source источник


Ответы (1)


Это совершенно безопасно. В тот момент, когда вы добавите его в макет, макет установит родителя для вас. Для любого виджета является владельцем макета. В тот момент, когда родитель будет удален, он также вызовет деконструктор вашей кнопки.

person Mellester    schedule 08.12.2014