picListWid=new QListWidget();
connect(picListWid,SIGNAL(currentRowChanged(int)),this,SLOT(changeShowPic(int)));
添加项:
if(picListWid->count()==0)
connect(picListWid,SIGNAL(currentRowChanged(int)),this,SLOT(changeShowPic(int)));
picListWid->addItems(choselist);
删除项
/*如果连接的有信号和槽,应尽量disconnect()信号,否则会在删除列表中的最后一项时会出现问题*/
QListWidgetItem *itemTmp=picListWid->currentItem();
if(picListWid->count()==1)
disconnect(picListWid,SIGNAL(currentRowChanged(int)),this,SLOT(changeShowPic(int)));
picListWid->removeItemWidget(itemTmp);
delete itemTmp;
删除项的另外一种方式:
QListWidgetItem *itemTmp=picListWid->takeItem(picListWid->currentRow());
if(picListWid->count()==1)
disconnect(picListWid,SIGNAL(currentRowChanged(int)),this,SLOT(changeShowPic(int)));
delete itemTmp;
注意:无论使用removeItemWidget()函数还是使用takeItem()都不会释放该item,必须手动进行释放(delete itemTmp);item的内存释放以后,该Item才会从UI界面上消失。