[Qt] удаление QTreeWidgetItem в дереве QTreeWidget
От: wavesql  
Дата: 07.03.08 14:27
Оценка:
Здравствуйте!
Создаю QTreeWidget в котором вывожу некое дерево, например:
root
  |__childs
  |      |
  |___|__child1
  |___|__chlid2

подскажите как можно удалить выделенный item? (child1 например или childs или т.п.)

пробую сделать так:
QTreeWidget       *treeWidget;
QTreeWidgetItem *item;

// тут создаются item'ы и выводятся в  treeWidget

// собственно тут и пробую осуществить удаление
void mainClass :: removeItem()
{
    treeWidget -> removeItemWidget(item, 1);
}

QAction *remove;

// тут создается контекстное меню для remove

connect( remove,     SIGNAL(triggered()), SLOT(removeElement()) );

И при нажатии правой кнопкой мышки появляется контекстное меню, где при выборе "удалить" хотелось бы чтобы выделенный item в дереве удалялся. Но в таком варианте как у меня, удаления не происходит...
добавлена разметка — Кодт


08.03.08 02:12: Перенесено модератором из 'C/C++' — Кодт
Re: [Qt] удаление QTreeWidgetItem в дереве QTreeWidget
От: Anton Batenev Россия https://github.com/abbat
Дата: 08.03.08 08:12
Оценка:
Здравствуйте, wavesql, Вы писали:

W>пробую сделать так:

W>
W>// собственно тут и пробую осуществить удаление
W>void mainClass :: removeItem()
W>{
W>    treeWidget -> removeItemWidget(item, 1);
W>}
W>


Это ты не то пытаешься удалить. Смотри в сторону QTreeWidget::takeTopLevelItem и QTreeWidgetItem::takeChild / QTreeWidgetItem::takeChildren. Вероятно, можно еще просто попробовать вызвать delete для соответствующего QTreeWidgetItem.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.