首页 > 其他分享 >QtableWidget、QlistWidget、QTreeWidget 单行选中,单击选中,再单击取消选中

QtableWidget、QlistWidget、QTreeWidget 单行选中,单击选中,再单击取消选中

时间:2022-12-15 11:33:31浏览次数:46  
标签:QlistWidget 单击 单行 pCurrentItem item 选中 QTreeWidget ui

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;
        }
    });

 

标签:QlistWidget,单击,单行,pCurrentItem,item,选中,QTreeWidget,ui
From: https://www.cnblogs.com/bclshuai/p/16984580.html

相关文章