21,466
社区成员
发帖
与我相关
我的任务
分享
void on_up_button()
{
QTreeWidgetItem* parent = tree->currentItem()->parent();
QTreeWidgetItem* curItem = tree->currentItem();
if (parent == NULL || parent->indexOfChild(curItem) <= 0)
{
return;
}
int curIndex = parent->indexOfChild(curItem);
QList<QTreeWidgetItem*> oldChildren = parent->takeChildren();
QList<QTreeWidgetItem*> newChildren;
for (int i = 0; i < curIndex - 1; ++i)
{
newChildren.append(oldChildren.at(i));
}
newChildren.append(oldChildren.at(curIndex));
newChildren.append(oldChildren.at(curIndex-1));
for (int i = curIndex + 1; i < oldChildren.size(); ++i)
{
newChildren.append(oldChildren.at(i));
}
parent->addChildren(newChildren);
tree->setCurrentItem(parent->child(curIndex - 1));
}
void on_up_button()
{
QTreeWidgetItem* parent = tree->currentItem()->parent();
QTreeWidgetItem* curItem = tree->currentItem();
if (parent == NULL || parent->indexOfChild(tree->currentItem()) <= 0)
{
return;
}
QTreeWidgetItem* prev = parent->takeChild( parent->indexOfChild(curItem) - 1 );
if (NULL == prev)
{
return;
}
parent->insertChild(parent->indexOfChild(curItem) - 1,curItem );
parent->insertChild(parent->indexOfChild(curItem),prev );
/*
//节点内容互换
QTreeWidgetItem tmp;
tmp = *(tree->currentItem());
*(tree->currentItem()) = *prev;
*prev = tmp;
*/
tree->setCurrentItem(prev);
}
[/quote]
你把两个单元格的内容互换就好了
想看出效果就是前面选择的单元格那个上移或下移了[/quote]
我也是那样想的,互换后将currentItem更新一下,但是如果引动的结点右子节点,子节点并没有跟着向上移动,看来还得慢慢琢磨啊
[/quote]
你把两个单元格的内容互换就好了
想看出效果就是前面选择的单元格那个上移或下移了
