• 6990阅读
  • 2回复

[提问]QTreeWidget怎样将勾选的item整体移动到另外一个树中? [复制链接]

上一主题 下一主题
离线bazzi2011
 

只看楼主 倒序阅读 楼主  发表于: 2014-08-12



如图,我想点击中间的右移按钮把左边树中勾选的节点移动到右边的树中。

我是用QTreeWidgetItemIterator这个类遍历树的,但这个类的缺点就是它是顺序遍历,不分父节点子节点。
这样的话如何将节点按照不变的父子关系整体保存并添加到右边的树中?


过程中似乎能用到下面两个操作,但这两个操作只能保存勾选的item,但无法确保它们的父子关系啊?!
void QTreeWidget::insertTopLevelItems(int index, const QList<QTreeWidgetItem *> & items)
void QTreeWidgetItem::insertChildren(int index, const QList<QTreeWidgetItem *> & children)




   QTreeWidgetItemIterator it(ui->treeWidget_Left, QTreeWidgetItemIterator::Checked);
    while (*it)
    {
         //这里该具体怎样实现?
        ++it;
    }

离线shiziyang

只看该作者 1楼 发表于: 2014-08-13
我觉得遍历的话性能关系不大的话用
QTreeWidgetItem * QTreeWidget::topLevelItem(int index) const
这个来深度遍历逻辑比较容易看懂
在线XChinux

只看该作者 2楼 发表于: 2014-08-14
takeItem()试验一下
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个