Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ QTableWidgetItem и QTreeWidgetItem

Автор: Ponchikus 12.11.2015, 19:17

Добрый вечер. Имеется пара вопросов.
1.) Для того, чтобы, удалить QTreeWidgetItem я делаю следующее:

...
QTreeWidgetItem *item= tree->currentItem();
delete item;
...


item - это любой элемент дерева, т.е. это может быть topLevelItem(), либо чей-то child()

Скажите, это корректное удаление элемента ? И в случае, если это - topLevelItem(), всего его дети удалятся тоже корректно ?

2.)
2.1. )Как удалить одну конкретную ячейку у QTableWidget ?
2.2. )Как очистить ( очистить в смысле содержимое ячейки, ее значение ) ячейку ? Искал у QTableWidgetItem метод clear(), но его нету.

Спасибо!

Автор: Litkevich Yuriy 13.11.2015, 10:27

Цитата(Ponchikus @ 12.11.2015, 21:17) *
Скажите, это корректное удаление элемента ?
нет, в http://www.doc.crossplatform.ru/qt/4.8.x/html-qt/model-view-programming.html#tree-widgets:
QTreeWidgetItem *item= tree->currentItem();

QTreeWidgetItem *parent = item->parent();
     int index;

     if (parent) {
         index = parent->indexOfChild(tree->currentItem());
         delete parent->takeChild(index);
     } else {
         index = treeWidget->indexOfTopLevelItem(tree->currentItem());
         delete tree->takeTopLevelItem(index);
     }


Разные вопросы следует задавать в разных темах, для тех кто ищет ответы поиском, для них так много удобнее, чем разгребать кашу внутри одной темы

Автор: Ponchikus 13.11.2015, 19:04

Цитата(Litkevich Yuriy @ 13.11.2015, 10:27) *
Цитата(Ponchikus @ 12.11.2015, 21:17) *
Скажите, это корректное удаление элемента ?
нет, в http://www.doc.crossplatform.ru/qt/4.8.x/html-qt/model-view-programming.html#tree-widgets:
QTreeWidgetItem *item= tree->currentItem();

QTreeWidgetItem *parent = item->parent();
     int index;

     if (parent) {
         index = parent->indexOfChild(tree->currentItem());
         delete parent->takeChild(index);
     } else {
         index = treeWidget->indexOfTopLevelItem(tree->currentItem());
         delete tree->takeTopLevelItem(index);
     }


Разные вопросы следует задавать в разных темах, для тех кто ищет ответы поиском, для них так много удобнее, чем разгребать кашу внутри одной темы



Понял, спасибо за ответ!

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)