Frage

Frage sagt alles wie heben Sie und unteren QTreeWidget Artikel [die Positionen ändern] in einer QTreeWidget,

War es hilfreich?

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 :)!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top