Then it's just a matter of removing from the list items that are already added. Something like this: //get the list from somewhere QStringList fileNames = ... //remove the temp item you mentioned fileNames.removeOne(temp); //remove the items already in the widget int numItems = listWidget->count(); for(int i = 0; i < numItems; ++i) fileNames.removeOne(listWidget->item(i)->text()); //now that the list is "clean" all there is left to do is add the new items listWidget->addItems(fileNames);