PDA

View Full Version : Item insertion problem in QTreeWidget



anuj
26th April 2013, 08:33
Hi Experts,
I am inserting items in QTreewidget at top level using below function :
InsertFile(QString filepath)
{
QTreeWidgetItem *NewItems=new QTreeWidgetItem(ui->treeWidget);
NewItems->setText(0,filepath);
ui->treeWidget->addTopLevelItem(NewItems);
//ui->treeWidget->update();
}
After insert some item in Qtreewidget when i call this function another time then
files are not inserted at top level of tree.
File is inserted below the existing item and there is one row gap between them

My problem is how remove the empty row.And Insert item continue.
![enter image description here][1]

In Above image after inset two item when i insert item it insert at 3 index not at indesx 2.

8991
[1]: http://i.stack.imgur.com/6unvI.png
If i delete item from Qtreewidget , item is remove but index is not free.
QTreeWidgetItem *item;
QList<QTreeWidgetItem *> list;
list = ui->treeWidget->selectedItems();
if(list.count())
{
ui->treeWidget->selectedItems().clear();
item=list.takeFirst();
delete item;
}


Thanks

Santosh Reddy
26th April 2013, 15:49
Most probably InsertFile(QString filepath) is called with empty string.


QTreeWidgetItem *item;
QList<QTreeWidgetItem *> list;
list = ui->treeWidget->selectedItems();
if(list.count())
{
ui->treeWidget->selectedItems().clear();
item=list.takeFirst();
delete ui->treeWidget->takeTopLevelItem(ui->treeWidget->indexOfTopLevelItem(item));
}