PDA

View Full Version : Moving items in QTreeWidget



navar
3rd October 2013, 11:10
Hi!

Sorry for my English)

I have the next problem.

My QDialog have QTreeWidget which filled with QTreeWidgetItem. Each QTreeWidgetItem have tristae QCheckBox widget. I want to add a function which move QTreeWidgetItem above and below.

I have tryed the next ways:

1.
nrow = self.QTreeWidget__tags.indexOfTopLevelItem(QTreeWi dgetItem__current)
self.QTreeWidget__tags.takeTopLevelItem(nrow)
self.QTreeWidget__tags.insertTopLevelItem(nrow+1, QTreeWidgetItem__current)

The result is QTreeWidgetItem s are being moved. But they lost their QCheckBox widgets.

2.
nrow = self.QTreeWidget__tags.indexOfTopLevelItem(QTreeWi dgetItem__current)
self.QTreeWidget__tags.takeTopLevelItem(nrow)

QTreeWidgetItem__new = QtGui.QTreeWidgetItem(self.QTreeWidget__tags)
self.QTreeWidget__tags.setItemWidget(QTreeWidgetIt em__new, 0, QtGui.QCheckBox(self.QTreeWidget__tags))
self.QTreeWidget__tags.insertTopLevelItem(nrow+1, QTreeWidgetItem__new )

The result is QTreeWidgetItem s are being appended always at end of the list.

3.
self.QTreeWidget__tags.setDragEnabled(True)
self.QTreeWidget__tags.setAcceptDrops(True)
self.QTreeWidget__tags.setDragDropMode(QtGui.QAbst ractItemView.InternalMove);

QTreeWidgetItems lose widgets.

4.
model = self.QTreeWidget__tags.model()
index0 = model.index(0, 0)
data = model.itemData(index0)
model.removeRow(0)

rowCount = model.rowCount()
model.insertRow(2)
index1 = model.index(2, 0)
model.setItemData(index1, data)

QTreeWidgetItems lose widgets either.

How should I move the QTreeWidgetItems?