Могу ли я в Qt встраивать дочерние виджеты в их родительские виджеты через композицию, или мне нужно создавать их с помощью new
?
class MyWindow : public QMainWindow
{
...
private:
QPushButton myButton;
}
MyWindow::MyWindow ()
: mybutton("Do Something", this)
{
...
}
В документации говорится, что любой объект является производным from QObject
будет автоматически уничтожен при уничтожении его родителя; это подразумевает вызов delete
, что в приведенном выше примере приведет к сбою.
Должен ли я использовать следующее?
QPushButton* myButton;
myButton = new QPushButton("Do Something", this);
РЕДАКТИРОВАТЬ
Ответы весьма разнообразны и в основном сводятся к три возможности:
удаляет
объекты, выделенные в куче (как это работает?) delete
для объекта (но разве виджет без родительского элемента не превратится в окно верхнего уровня?) Какой из них правильный?