• 13380阅读
  • 4回复

QTreeWidget 的currentItemChanged信号? [复制链接]

上一主题 下一主题
离线luoyes
 

只看楼主 倒序阅读 楼主  发表于: 2009-11-03
自己写了个槽函数连接到currentItemChanged,在这个槽函数里去修改QTreeWidget的currentItem时会出现一大片QTreeWidgetItem被选中的现象:
这是为什么呢?
该如何解决?
离线hiti_tony
只看该作者 1楼 发表于: 2009-11-03
是不是你在这个槽函数里选了多个哦
离线luoyes

只看该作者 2楼 发表于: 2009-11-03
引用第1楼hiti_tony于2009-11-03 09:20发表的  :
是不是你在这个槽函数里选了多个哦

Thanks for you attention!
不过我只写了这么一句:
  1. ui.treeWidget->setCurrentItem( previous);

然后有一个成员变量用来记录这个previous,叫它pItemPre吧
在槽函数的开头得加上这么一句防止死循环:
  1. if( pItemPre == current ) return;
离线luochen601

只看该作者 3楼 发表于: 2010-07-22
1. 当前项(currentItem)和已选项(selectedItem)是两个完全不同的概念,改变选择是使用QTreeWidgetItem::setSelected(bool)
2. 由于currentItemChanged信号早于itemSelectionChanged发出(可以测试得出),因此在currentItemChanged槽里面改变选择状态是不明智的
3. 最可靠的方法就是连接itemSelectionChanged,在这个槽函数里面对相应的选择做改变,最后记得setCurrentItem

说的有点罗嗦,大家自己去试试吧
1条评分金钱+5
reyn 金钱 +5 - 2014-09-21
离线xiuxianshen

只看该作者 4楼 发表于: 2014-08-21
    
快速回复
限100 字节
 
上一个 下一个