Конкретизируйте ситуацию, из-за которой вы не знаете индекс уже присутствующего элемента в дереве. Мне кажется это странным.
Да просто переписываю прогу со среды Photon Application Builder на Qt. А там как раз в PtTree (аналог QTreeWidget) при добавлении, удалении, редактировании PtTreeItem (аналог QTreeWidgetItem) требует item. Ну вот к примеру некоторые из методов из Photon:
1. Создание нового item-а (здесь wgt_tree - PtTree; str - char*; attr - PtTreeAttribute_t - атрибуты для PtTree;):
PtTreeItem_t *new_item;
new_item = PtTreeCreateItem(wgt_tree, str, attr);
2. Добавить item после(здесь wgt_tree - PtTree; item - тот что добавляем; brother - тот item после которого добавляем;):
PtTreeAddAfter(wgt_tree, item, brother);
3. Добавить первый item(здесь wgt_tree - PtTree; item - тот что добавляем; brother - в даном случае будет родительским;):
PtTreeAddFirst(wgt_tree, item, brother);
4. Удаление item-a(здесь wgt_tree - PtTree; item - тот что который хотим удалить;):
PtTreeRemoveItem(wgt_tree, item);
3. Изменить item (здесь wgt_tree - PtTree; str - char*; item - тот который хотим изменить; attr - PtTreeAttribute_t - атрибуты для attr):
PtTreeChangeItem(wgt_tree , item, str, attr);
Вот и думаю как подобные методы реализовать в Qt, так как я уже говорил, находил только те, которые требуют задавать item и его индекс.