怎么把加入到widget的label删掉
如题,代码中我在一个widget里加入了数个label
在槽函数触发后要刷新界面 ,需要删除前面的label,再重新加入
for(int i=0;i<input_num;i++)
{
int pos_x = view_x_pos+i_width*(i%side_num);
int pos_y = view_y_pos+i_height*(i/side_num);
QLabel *label = new QLabel(ui->p_widget);
label->setText(QString::number(i));
label->setGeometry(QRect(pos_x,pos_y,i_width,i_height));
label->show();
}
该如何实现?谢谢
[解决办法]
delete[]
[解决办法]
你可以用个数组定义个成员变量,类似下面这样:
QVector<QLabel*> m_vecLabels;
for(int i=0;i<input_num;i++)
{
int pos_x = view_x_pos+i_width*(i%side_num);
int pos_y = view_y_pos+i_height*(i/side_num);
QLabel *label = new QLabel(ui->p_widget);
m_vecLabels.pushback(label);
label->setText(QString::number(i));
label->setGeometry(QRect(pos_x,pos_y,i_width,i_height));
label->show();
}
新建的label全部加入到这个vector中,
需要删除的时候,遍历删除,在重新加入
[解决办法]
你是怎么删除的呢:
delete label;
label = NULL;
你可以试一下,只加一个label然后删除掉.
是不是界面需要刷新一下
[解决办法]
暂时性的设置透明如何
[解决办法]
直接delete掉就可以
[解决办法]
或者在delete之前将label->hide()