Перемещение элементов в QTreeWidget или QTreeView |
Здравствуйте, гость ( Вход | Регистрация )
Перемещение элементов в QTreeWidget или QTreeView |
Гость_Михаил_* |
3.4.2008, 8:46
Сообщение
#1
|
Гости |
Как такое реализиовать?
И нужно ли для этого использовать модель представлние? |
|
|
rich |
5.4.2008, 11:54
Сообщение
#2
|
Участник Группа: Участник Сообщений: 123 Регистрация: 1.3.2008 Пользователь №: 109 Спасибо сказали: 6 раз(а) Репутация: 0 |
перемещение по одному уровню дерева?т.е в верх и низ?если да,то от чего зависит их номер по порядку?
|
|
|
Litkevich Yuriy |
5.4.2008, 12:25
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
для QTreeView, это только через модель, а для QTreeWidget даже незнаю.
|
|
|
rich |
5.4.2008, 13:29
Сообщение
#4
|
Участник Группа: Участник Сообщений: 123 Регистрация: 1.3.2008 Пользователь №: 109 Спасибо сказали: 6 раз(а) Репутация: 0 |
если дерево из базы берётся и номер по порядку itema в дереве это номер по порядку у родителя в базе, то перемещение достигается сменой номеров по порядку в базе и вызовом функции построения дерева.Соответственно елсе в низ,то текущего с нижестоящим и елсе в верх, то текущего с вышестоящим.
|
|
|
Гость_Александр_* |
21.1.2011, 15:51
Сообщение
#5
|
Гости |
Как-то так
QTreeWidgetItem *curr = treeWidget->currentItem(); if (0 == curr) return; QTreeWidgetItem *above; QTreeWidgetItem *parent = curr->parent(); if (0 == parent) { int indx = treeWidget->indexOfTopLevelItem(curr); if (indx > 0) { above = treeWidget->takeTopLevelItem(indx - 1); treeWidget->insertTopLevelItem(indx, above); } return; } int indx = parent->indexOfChild(curr); if (indx > 0) { above = parent->takeChild(indx - 1); parent->insertChild(indx, above); } } |
|
|
Текстовая версия | Сейчас: 21.12.2024, 17:42 |