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)
Обсуждают сегодня