PDA

View Full Version : How can I restore itemWidget after taking it from treeWidget?



davit
13th April 2007, 13:31
Hi all,
I'm using Qt4.2.2 and I have following problem related to QTreeWidget.
I want to add item widget and for doing that I'm using setItemWidget() method.
Then I need to move any item to another row. The code looks like this:

QTreeWidget* tree = new QTreeWidget;
QStringList l;
l << "Hello";
QTreeWidgetItem* it = new QTreeWidgetItem(tree, l);
tree->setItemWidget(it, 1, new QComboBox(tree));
/*
......
*/
int c = tree->indexOfTopLevelItem(it);
QComboBox* combo = qobject_cast<QComboBox*>(tree->itemWidget(it, 1));
tree->takeTopLevelItem(it);
tree->insertTopLevelItem(it, c+1);

1)
tree->setItemWidget(it, 1, combo);

2)
tree->setItemWidget(it, 1, new QComboBox);

In 1) case, item widget disappears but in 2) case not. But I don't need for new widget. I want to add to item that widget which originally added to it. How can I do it.

P.S. I have tried to do this setIndexWidget() method, but it doesn't help me too.

Please help me.

Thanks in advance.

--davit

wysota
16th April 2007, 12:53
Have you tried passing another widget (or null) to the "old" cell to change/remove the item widget?