QtableWidget、QlistWidget、QTreeWidget 单行选中,单击选中,再单击取消选中
1.问题描述,QtableWidget、QlistWidget、QTreeWidget 设置单选行模式时,就会一直选中一行,无法取消选中行,恢复全不选的状态;点击空白处,也不会取消选中行;多行选择模式,可以取消选中行;
2.解决办法
网上看到一个用多行选中,代替单行选中的方法,就是多行选中变化时,取消其他的选中;保持只有单行选中;
如果是单行选中模式要怎么处理呢,下面以QTreeWidget为例来说明;
(1)QtreeWidget属性设置,单选模式,选中行为是选中行;
(2)定义一个当前的选中成员变量保存选中的item;
QTreeWidgetItem* m_pCurrentItem=NULL;
(3)QTreeWidgetItem::itemcliecked响应函数,判断之前选中的是否是同一个item,如果是则取消,如果不是则设置选中;;
connect(ui.treeWidget, &QTreeWidget::itemClicked, [=](QTreeWidgetItem *item, int column) { if (m_pCurrentItem ==ui.treeWidget->currentItem()) { ui.treeWidget->setItemSelected(item, false); m_pCurrentItem = NULL; } else { ui.treeWidget->setItemSelected(item, true); m_pCurrentItem = item; } });
自己开发了一个股票智能分析软件,功能很强大,需要的关注微信公众号:QStockView
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2020-12-15 QT图片旋转动画
2019-12-15 6.4hadoop idea本地运行器测试