PowerModeler/source/tableWidgetHoverDelegate.cpp

36 lines
1.2 KiB
C++
Raw Normal View History

2025-03-14 16:06:20 +08:00
#include "tableWidgetHoverDelegate.h"
QTableWidgetHoverDelegate::QTableWidgetHoverDelegate(QTableWidget *parent)
: QStyledItemDelegate{parent}
{
m_tableWiget = parent;
}
QTableWidgetHoverDelegate::~QTableWidgetHoverDelegate()
{}
void QTableWidgetHoverDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
{
if(option.state.testFlag(QStyle::State_MouseOver) && m_tableWiget)
2025-03-14 16:06:20 +08:00
{
QTableWidgetItem* hoveredItem = m_tableWiget->item(index.row(), index.column());
if(hoveredItem)
{
int row = index.row();
for(int column = 0; column < m_tableWiget->columnCount(); column++)
{
QTableWidgetItem* item = m_tableWiget->item(row, column);
if(!item)
continue;
QModelIndex index = m_tableWiget->model()->index(row, column);
QStyleOptionViewItem itemOption = option;
itemOption.rect = m_tableWiget->visualItemRect(item);
QStyledItemDelegate::paint(painter, itemOption, index);
}
}
}
else
QStyledItemDelegate::paint(painter, option, index);
}