当前位置: 代码迷 >> QT开发 >> QTreeWidget怎样将勾选的item通体移动到另外一个树中
  详细解决方案

QTreeWidget怎样将勾选的item通体移动到另外一个树中

热度:84   发布时间:2016-04-25 03:13:58.0
QTreeWidget怎样将勾选的item整体移动到另外一个树中?

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

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



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


------解决方案--------------------
如果子节点有选中,则父节点一定是选中或者半选中状态(因为可能其它的子节点或子子节点没有选中)。
这段代码能输出所以已选中的节点。

    auto leftTree = this->ui->treeWidgetLeft;
    QTreeWidgetItemIterator it(leftTree,
                               QTreeWidgetItemIterator::Checked 
------解决方案--------------------

                               QTreeWidgetItemIterator::NoChildren);
    while (*it) {
        QString test = (*it)->text(0) + "
------解决方案--------------------
";
        auto temp = (*it)->parent( );
        while (temp) {
            test += temp->text(0) + "
------解决方案--------------------
";
            temp = temp->parent( );
        };
        qDebug( ) << test;
        ++it;
    };
    leftTree->expandAll( );
  相关解决方案