QHBoxLayout析構引發的異常

自定義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;

所以異常發生是因爲析構衝突

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章