Я пытаюсь удалить состояние наведения мыши из элемента, когда курсоры мыши покидают QListview.
Я проверяю состояние при наведении мыши в QStyledItemDelegate следующим образом:
void MyDelegate::paint( QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index ) const
{
if( option.state & QStyle::State_MouseOver)
{
// Paint in MouseOver state
}
else
{
// Paint normally
}
}
Затем я реализовал в своем QListView функцию leftEvent для вызова update.
void MyListView::leaveEvent(QEvent *event)
{
// update();
QListView::leaveEvent(event);
update(); // Same result if update() called before or after QListView::leaveEvent
}
Это делаетвызовите метод рисования делегата в отпуске, но не изменяет состояние наведения элемента, который последний раз находился в QListView.
Есть ли способ заставить делегата перерисоваться и не быть в состоянии наведения мыши, когда курсор покидает вид списка?
Я использую Qt 5.6 и я тестировал это на Centos7 и Fedora 27 и 28.