为什么委托不能识别 mouseOver 状态?
Why does delegate not recognize the state mouseOver?
我创建了一个委托,需要识别 mouseOver 状态来构建效果。但它不起作用。
当我的 table 出现时,输出是这样的
当我将鼠标移到 table 上时,输出是这样的
我没有看到 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 ) );
}
}
好的,我花了一段时间才发现我需要将这一行添加到我的 myTable.cpp
myTable->viewport()->setAttribute( Qt::WA_Hover );
我创建了一个委托,需要识别 mouseOver 状态来构建效果。但它不起作用。
当我的 table 出现时,输出是这样的
当我将鼠标移到 table 上时,输出是这样的
我没有看到 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 ) );
}
}
好的,我花了一段时间才发现我需要将这一行添加到我的 myTable.cpp
myTable->viewport()->setAttribute( Qt::WA_Hover );