void MessageWind::on_action_Move_to_dark_triggered() //移动到黑名单 { QTreeWidgetItem *item=ui->contactsTreeWidget->currentItem(); Contact temp=texttocontact(item->whatsThis(0)); QList<Contact> *contactlist; int position; indexofcontact(temp.number,&contactlist,&position); if(contactlist==&strangers) //若原来为陌生人,则将此人从陌生人集合中移动到黑名单集合 { temp.onLine=(*contactlist)[position].onLine; temp.isWhite=false; allContacts.append(temp); contactlist->removeAt(position); } else (*contactlist)[position].isWhite=false; ui->contactsTreeWidget->removeItemWidget(item,0); QTreeWidgetItem *item2=new QTreeWidgetItem(*item); ui->contactsTreeWidget->topLevelItem(2)->addChild(item2); for(int i=0;i<childBlinkItems.count();i++) //若有存在的闪烁,则更新闪烁 { if(childBlinkItems[i]->getitem()==item) { childBlinkItems[i]->setitem(item2); newblinkparent(item2->parent()); i--; } } Chat *chat; if(chatdialogexist(temp,&chat)) { chat->setdark(); } delete item; }