xsid
29th December 2014, 19:10
Well, I'm confused a little: I'm trying to delete selected item from QTreeWidget (in my case it have multiple columns) and always my app crashes on this action. Sorry for asking this question again and again, but I realy can't understand where my mistake is. Here are couple of solutions I've tryed (please, forgive me my english):
QList<QTreeWidgetItem *> items = ui->treeWidget->selectedItems();
if (!items.isEmpty()) {
foreach (QTreeWidgetItem *item, items)
delete item;
}
QTreeWidgetItem *twi = ui->treeWidget->currentItem();
delete twi;
QTreeWidgetItem *parent = ui->treeWidget->currentItem()->parent();
int index;
if (parent) {
index = parent->indexOfChild(ui->treeWidget->currentItem());
delete parent->takeChild(index);
} else {
index = ui->treeWidget->indexOfTopLevelItem(ui->treeWidget->currentItem());
delete ui->treeWidget->takeTopLevelItem(index);
}
I've tryed to set focus on another item before call "delete" but with no result... Please, any help. I started to code with Qt/C++ a couple of weeks ago and many things looks difficult to me.
QList<QTreeWidgetItem *> items = ui->treeWidget->selectedItems();
if (!items.isEmpty()) {
foreach (QTreeWidgetItem *item, items)
delete item;
}
QTreeWidgetItem *twi = ui->treeWidget->currentItem();
delete twi;
QTreeWidgetItem *parent = ui->treeWidget->currentItem()->parent();
int index;
if (parent) {
index = parent->indexOfChild(ui->treeWidget->currentItem());
delete parent->takeChild(index);
} else {
index = ui->treeWidget->indexOfTopLevelItem(ui->treeWidget->currentItem());
delete ui->treeWidget->takeTopLevelItem(index);
}
I've tryed to set focus on another item before call "delete" but with no result... Please, any help. I started to code with Qt/C++ a couple of weeks ago and many things looks difficult to me.