• 6436阅读
  • 9回复

多个tree的选中问题 [复制链接]

上一主题 下一主题
离线溟阡
 
只看楼主 倒序阅读 楼主  发表于: 2009-02-23
— 本帖被 XChinux 执行加亮操作(2009-02-24) —
在一个CentralWidget中加入了多个treeview,选中某个tree中的节点时会变蓝。但是当选令一个tree时,上一个选中的蓝色不会消失。
例如:有treeA和treeB,treeA中显示aa,bb,cc目录,treeB中显示dd,ee,ff目录,选中aa后aa上出现蓝色,再选ee时,aa和ee都是蓝色

我想让那个蓝色只标记当前的选中项,应该怎么实现啊?
离线banqiaoren

只看该作者 1楼 发表于: 2009-02-23
设置不是当前焦点的所有树的当前节点为空值0
treeA->setCurrentItem(0);
treeC->setCurrentItem(0);





离线溟阡
只看该作者 2楼 发表于: 2009-02-23
引用第1楼banqiaoren于2009-02-23 15:32发表的  :
设置不是当前焦点的所有树的当前节点为空值0
treeA->setCurrentItem(0);
treeC->setCurrentItem(0);


.......



我用的QTreeView……没有这个啊
离线weizhy
只看该作者 3楼 发表于: 2009-02-23
...
那就用 setCurrentIndex(QModelIndex())
离线XChinux

只看该作者 4楼 发表于: 2009-02-24
设置选择模式为单选。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线溟阡
只看该作者 5楼 发表于: 2009-02-24
就是图上的那三个蓝的只希望有一个存在……
[ 此帖被溟阡在2009-02-24 09:25重新编辑 ]
离线溟阡
只看该作者 6楼 发表于: 2009-02-24
设置成单选也没解决了
离线sbtree
只看该作者 7楼 发表于: 2009-02-24
这是不同对象之间的协调问题,以上几位都把你的问题理解错了,不过之前楼主也没有表达清楚。这里给个思路,重新实现focusOutEvent,当对象失去焦点的时候,设置当前选中的Item为不选中状态,这样做的一个弱点是,当3个treeView都失去焦点时,就没有任何蓝色的选中项了,还有一个思路是在主窗口框架内协调3个treeview的选中项,这样做的好处是,可以保证总有一个蓝色的选中项
windows 7 + VC++2008 + Qt4.5.2
离线溟阡
只看该作者 8楼 发表于: 2009-02-25
问题解决,判断选中后用clearSelection()清除剩余的
不过有点麻烦,要判断3次然后每次都要clear另2个……
离线elba
只看该作者 9楼 发表于: 2009-02-25
好像 Example 里有这样的例子
快速回复
限100 字节
 
上一个 下一个