如何方便地遍历Pyqt中treewidget组件的item

需求背景

用带复选框的树形结构来选择文章的搜索范围,调用Sql时需要获得所有被选定为搜索范围的书籍名称,作为在数据库中进行搜索的条件。这就需要得到所有treewidget中checkstate为2(选中)的item的text值。

思路

网上有很多拷贝的帖子都是说用QTreeWidgetItemIterator,当然这个方法肯定可以实现,但我比较喜欢用现有的使用过的函数来尽可能多的实现自己的需求。所以我这里还是推荐用find函数配合For循环来实现树形结构下item的遍历。

具体实现

            items = self.treeWidget.findItems('', Qt.MatchContains|Qt.MatchRecursive, 0)
            for item in items:
                if item.parent() and not item.childCount() and item.checkState(0)==2:
                    checked_text_list.append(item.text(0))

Qt.MatchContains指的是模糊匹配
Qt.MatchRecursive指的是递归方式搜索,不然就只会搜索根目录
if item.parent() and not item.childCount() and item.checkState(0)==2意思是获得底层项目中复选框被选中的Item。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每日出拳老爷子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值