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;
ui.treeWidget->setItemSelected(item, true);
m_pCurrentItem = item;