【Qt】点击QTreeWidget空白处,使当前选择的Item失效
2023-12-14 23:37:43
原因
有时在开发中,可能会对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);
}
效果
选中状态
:
点击空白
:
结论
用行动祈祷比用言语更能够使上帝了解
。
文章来源:https://blog.csdn.net/MrHHHHHH/article/details/135001896
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!