我有一个QTableView
,我想突出显示当前鼠标指针下的实际单词
那我怎么能找到这个词呢?
void LogItemDelegate::paint(QPainter *painter,
const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
QString text = index.model()->data(index, Qt::DisplayRole).toString();
// so how can i find the word under the mousepointer
}
答案 0 :(得分:0)
试试这个:
QString text = index.model()->data(index, Qt::DisplayRole).toString();
if(option.state & QStyle::State_MouseOver)
{
painter->setPen(Qt::blue);
painter->drawText(option.rect,text);
}
else
{
QStyledItemDelegate::paint(painter,option,index);
}
你也可以尝试:
painter->drawText(option.rect.adjusted(3, 7, 0, 0),txt);
以获得更好的视觉表现。
但我可以预测这不起作用。为什么?您应该允许鼠标跟踪,所以只需添加:
ui->tableView->setMouseTracking(true);
ui->tableView->setItemDelegate(new LogItemDelegate);