Heben und Senken QTreeWidgetItem in einem QTreeWidget?
-
19-09-2019 - |
Frage
Frage sagt alles wie heben Sie und unteren QTreeWidget Artikel [die Positionen ändern] in einer QTreeWidget,
Lösung
Ich glaube, Sie müßten Modell-Objekt verwenden zu können Elemente Positionen manipulieren (wenn es das, was Sie wollen, zu tun). Überprüfen Sie bitte ein Beispiel unten; es bewegt sich das erste Element des abstrakten Modells nach unten.
QAbstractItemModel* model = your_tree_view->model();
QModelIndex index0 = model->index(0, 0);
QMap<int, QVariant> data = model->itemData(index0);
// check siblings of the item; should be restored later
model->removeRow(0);
int rowCount = model->rowCount();
model->insertRow(rowCount);
QModelIndex index1 = model->index(rowCount, 0);
model->setItemData(index1, data);
einmal Element im Modell Ihr treeview bewegt Widget sollte sich entsprechend aktualisieren
den Fall, dass Sie die Größe des Objekts, indem Sie Ihre treeview installieren Sie eine gezeigt ändern Artikel delegieren und außer Kraft setzen seine sizeHint Methode
hoffe, das hilft, Grüße
Andere Tipps
fand ich serge-Lösung ganz so gut für einen einfachen nach oben / unten bewegen, kompliziert zu sein. Es ist eigentlich eine ganz einfache Lösung für dieses Problem, da Sie verwenden QTreeWidget:
QTreeWidgetItem* item = your_qtreewidget->currentItem();
int row = your_qtreewidget->currentIndex().row();
if (item && row > 0)
{
your_qtreewidget->takeTopLevelItem(row);
your_qtreewidget->insertTopLevelItem(row - 1, item);
your_qtreewidget->setCurrentItem(item);
}
Hier haben Sie einen Code ein Element zu bewegen. Daraus sollten Sie in der Lage sein, zu erfahren, wie es in kürzester Zeit nach unten bewegen :)!