Qt у нас парадигма того, что для всех не top-level виджетов мы пишем new, а потом (или сразу в конструкторе) цепляем куда-то. Вот если это случай, когда "потом", например:
QPushButton* btnA = new QPushButton("A");
QPushButton* btnB = new QPushButton("B");
QBoxLayout* layout = new QBoxLayout(QBoxLayout::LeftToRight);
layout->addWidget(btnA);
layout->addWidget(btnB);
wgt.setLayout(layout);
Это ведь не очень exception-safe: btnA не делитнется, если между ним и pbxLayout->addWidget(btnA); выскочит исключение. Как обычно в Qt борются с таким?
обычно new идет в паре родителем, а родитель уже позабодится об удалении: new QObject(owner/garbage collector, ...")
ну вот в случае с layout родитель цепляется только в строчке wgt.setLayout(layout)
Обсуждают сегодня