• 5735阅读
  • 6回复

想显示QTreeView中的一部分内容,怎么做呢? [复制链接]

上一主题 下一主题
离线liuxu_lx7
 
只看楼主 倒序阅读 楼主  发表于: 2011-08-15
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2011-08-15) —
想显示QTreeView中的一部分内容,怎么做呢?
TreeView数据结构如下

------A
      |------B
             |------B1
             |------B2
             |------B3
      |------C
      |------D

我现在只想将 B1, B2, B3 以列表的形式显示出来,应该怎么做呢?
离线ppdayz

只看该作者 1楼 发表于: 2011-08-15
回 楼主(liuxu_lx7) 的帖子
QStringList items;
QTreeWidgetItemIterator it(treeWidget);
     while (*it) {
         if ((*it)->text(0) == itemText){
                items << (*it)->text(0);
         }
        ++it;
  }
QListWidget *listwidget = new QListWidget(parent);
listwidget ->addItems(items);




离线ppdayz

只看该作者 2楼 发表于: 2011-08-15
回 楼主(liuxu_lx7) 的帖子

QList<QTreeWidgetItem *> items = treeWidget->findItems(.....);

QListWidget *listwidget = new QListWidget(parent);
foreach(QTreeWidgetItem *item, items){
           listwidget ->addItem(item->text(0));
}
离线ppdayz

只看该作者 3楼 发表于: 2011-08-15
回 楼主(liuxu_lx7) 的帖子
QTreeWidgetItem *itemB = ....//找到b1,b2,b3的parent;

QTreeWidgetItem *child;
QListWidget *listwidget = new QListWidget(parent);

for(int i = 0; i < itmeB->childCount (); i++){
       child = itemB->child(i);
       listwidget ->addItem(child->text(0));
}
离线liuxu_lx7
只看该作者 4楼 发表于: 2011-08-15
回 3楼(ppdayz) 的帖子
多谢你回复了这么多种方法。

但上面列出的方法,怎么应付以下这种情况:
【修改ListView中的B1,将其改为B4。这个修改会影响源View, 也就是 TreeView?】

据我所指,只有当多个View使用同一个Model时,才可能同步【变换】。

我没有找到Model的子集的概念(也就是子Model),如果能将其中一个Item作为一个View的RootItem就好了~
离线liuxu_lx7
只看该作者 5楼 发表于: 2011-08-17
自己再顶下~ 求帮助~
离线蠢蠢欲懂
只看该作者 6楼 发表于: 2012-05-07
@ppdayz
好厉害啊,好心人,顶
快速回复
限100 字节
 
上一个 下一个