首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

如何把加入到widget的label删掉

2012-09-25 
怎么把加入到widget的label删掉如题,代码中我在一个widget里加入了数个label在槽函数触发后要刷新界面 ,需

怎么把加入到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();
  }


该如何实现?谢谢

[解决办法]

C/C++ code
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()

热点排行