【Qt】点击QTreeWidget空白处,使当前选择的Item失效

原因

有时在开发中,可能会对QTreeWidget进行操作,当点击feiQTreeWidgetItem时,需要焦点取消,无Item选中。

解决方案

可以通过设置事件过滤器进行实现。

1.QtreeWidget安装事件过滤器

ui->treeWidget->viewport()->installEventFilter(this);

2.重写eventFliter()函数
如果光标不在Item上,就设置当前Item下标为空

bool MainWindow::eventFilter(QObject *watched, QEvent *event)
{
   
    if(ui->treeWidget->viewport() == watched)
    {
   
        if(event->type() == QEvent::MouseButtonPress)
        {
   
            QMouseEvent *pME = (QMouseEvent*)event;
            if(pME->buttons() & Qt::LeftButton)
            {
   
                QModelIndex index = ui->treeWidget->indexAt(pME->pos());
                if(!index.isValid())
                {
   
                    ui->treeWidget->setCurrentIndex(QModelIndex());
                }
            }
        }
    }
    return QMainWindow::eventFilter(watched, event);
}

效果

选中状态
在这里插入图片描述
点击空白:
在这里插入图片描述

结论

用行动祈祷比用言语更能够使上帝了解

最近更新

  1. TCP协议是安全的吗?

    2023-12-15 03:22:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-15 03:22:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-15 03:22:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-15 03:22:02       18 阅读

热门阅读

  1. Nacos 系统参数介绍

    2023-12-15 03:22:02       42 阅读
  2. [云原生基础] 浅谈 Docker

    2023-12-15 03:22:02       40 阅读
  3. Python 如何进行游戏开发?

    2023-12-15 03:22:02       36 阅读
  4. shell学习---杂谈

    2023-12-15 03:22:02       33 阅读
  5. Heap Sort Algorithm

    2023-12-15 03:22:02       31 阅读
  6. SSH连接慢的问题

    2023-12-15 03:22:02       40 阅读