首页 > 解决方案 > 为什么委托无法识别状态mouseOver?

问题描述

我创建了一个委托,需要识别 mouseOver 状态来构建效果。但它不起作用。当我的表出现时,输出是这样的 在此处输入图像描述

当我将鼠标移到桌子上时,输出是这样的 在此处输入图像描述

我没有看到状态 MouseOver。我怎样才能认出它?

void TableDelegate::paint( QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index ) const
{
  qDebug() << option.state;
  if ( option.state == QStyle::State_MouseOver )
  {
     painter->fillRect( option.rect, QColor( 249, 126, 18 ) );
  }
}

标签: qtdelegatesmouseoverqstyleditemdelegateqstyle

解决方案


好的,我需要一段时间才能发现我需要将此行添加到 myTable.cpp

myTable->viewport()->setAttribute( Qt::WA_Hover ); 

推荐阅读