• 9989阅读
  • 12回复

[提问]谁知道如何去掉QTreeWidget的复选框 [复制链接]

上一主题 下一主题
离线cjalchange
 
只看楼主 倒序阅读 楼主  发表于: 2012-05-24
我在生成树时,用setCheckState给每个项都添加了复选框,现要实现下面的功能:

我想获得用户所选择的项,并将其余项删除,同时把所选择的项前面的复选框去掉

最后形成一棵由用户所选择的项构成的树。

当然,我可以完全重新建立一棵树,但是我想既然有加复选框的方法,那应该也会有去掉复选框的方法

我查看了Qt的帮助文档,但没有相应的方法

所以,想问问是否有这种方法!
离线uidab

只看该作者 1楼 发表于: 2012-05-24
可不可以用removeItemWidget
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线cjalchange
只看该作者 2楼 发表于: 2012-05-24
回 1楼(uidab) 的帖子
这个函数不是移除一项么?
离线cjalchange
只看该作者 3楼 发表于: 2012-05-24
回 1楼(uidab) 的帖子
不好意思,刚才看错了,我试了一下,貌似不行!
离线uidab

只看该作者 4楼 发表于: 2012-05-24
回 3楼(cjalchange) 的帖子
是不是remove后还要set一下,?
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线cjalchange
只看该作者 5楼 发表于: 2012-05-24
回 4楼(uidab) 的帖子
set什么?
离线uidab

只看该作者 6楼 发表于: 2012-05-24
setItemWidget
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线cjalchange
只看该作者 7楼 发表于: 2012-05-24
回 6楼(uidab) 的帖子
还是不行,树上的复选框可能不是用setItemWidget添加上去的,所以remove对它不起作用!
离线uidab

只看该作者 8楼 发表于: 2012-05-24
Re:回 6楼(uidab) 的帖子
引用第7楼cjalchange于2012-05-24 21:58发表的 回 6楼(uidab) 的帖子 :
还是不行,树上的复选框可能不是用setItemWidget添加上去的,所以remove对它不起作用!



这倒是, 一般都是在QTreeWidgetItem里面设置的, 所以要想办法把这里的。

QTreeWidgetItem::takeChild ( int index ) 这个呢?

有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线cjalchange
只看该作者 9楼 发表于: 2012-05-25
回 8楼(uidab) 的帖子
这个会把整个孩子节点给删了!
离线uidab

只看该作者 10楼 发表于: 2012-05-25
回 9楼(cjalchange) 的帖子
它是给删了,但是你能重新获得数据,在设置回来。不知道这么做是不是可行?
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线cjalchange
只看该作者 11楼 发表于: 2012-05-25
回 10楼(uidab) 的帖子
嗯,你这是个可行的方法,其实就是重新建立节点。
离线hzxfrank2010

只看该作者 12楼 发表于: 2012-12-11
用这个方法,给它设一个非法的值就可以了
item->setData(0, Qt::CheckStateRole, QVariant());
快速回复
限100 字节
 
上一个 下一个