在Qt中,QSpacerItem是用于布局管理的辅助项,通常用于在布局中创建空白空间。
实践证明重复使用,等到析构的时候会报错,错误示范:
QSpacerItem *spacer = new QSpacerItem(100, 20);
layout->addItem(spacer);
// 添加控件
...
layout->addItem(spacer); // 重复使用同一个spacer,析构报错
需要用到的时候再创建一个新QSpacerItem 对象,正确示范:
QSpacerItem *spacer1 = new QSpacerItem(100, 20);
layout->addItem(spacer);
// 添加控件
...
QSpacerItem *spacer2 = new QSpacerItem(100, 20);
layout->addItem(spacer);