自定義QHBoxLayout的佈局,在析構時引發異常
Label = new QLabel(QString("AAAAA"));
ComboBox = new QComboBox;
SpacerItem = new QSpacerItem(200, 20, QSizePolicy::Fixed);
HBox_Layout = new QHBoxLayout;
HBox_Layout->addWidget(Label,0);
HBox_Layout->addWidget(ComboBox,1);
HBox_Layout->addSpacerItem(SpacerItem);
delete HBox_Layout;
delete Label;
delete ComboBox;
delete SpacerItem;//異常發生異常在這裏
查找QHBoxLayout源碼發現
/*!
Destroys this box layout.
The layout's widgets aren't destroyed.
*/
QHBoxLayout::~QHBoxLayout()
{
}
說明QHBoxLayout會自動析構QSpacerItem;
所以異常發生是因爲析構衝突