委托中的 QWidget:鼠标悬停时不会重绘,因此无法检查 MouseOver 状态

Posted

技术标签:

【中文标题】委托中的 QWidget:鼠标悬停时不会重绘,因此无法检查 MouseOver 状态【英文标题】:QWidget in delegate: no repaint upon mouseover, therefore MouseOver state cannot be checked 【发布时间】:2012-10-03 17:25:01 【问题描述】:

它可以在 Linux+KDE 上运行,但不能在 Windows/OSX/Linux + XFCE 上运行。

我有一个列表视图,项目是自定义小部件,如果鼠标悬停在元素上,列表视图项目的委托不会调用 paint()。

试图通过 css ( :hover ) 模拟事件,但它似乎不适用于 QWidgets。

我是否遗漏了什么,或者它确实是 KDE 以外的平台上缺少的功能?

【问题讨论】:

【参考方案1】:

您可能需要打开鼠标跟踪。

QWidget::setMouseTracking(bool)

【讨论】:

在父列表视图上执行此操作有效,谢谢。我首先在小部件本身上尝试了它,但这个更合乎逻辑。奇怪KDE下的默认值和非KDE下的默认值有这么大的区别

以上是关于委托中的 QWidget:鼠标悬停时不会重绘,因此无法检查 MouseOver 状态的主要内容,如果未能解决你的问题,请参考以下文章

强制QItemDelegate重绘

Jquery:带委托的鼠标悬停/鼠标输入

Jquery - 为啥我的图像不会在鼠标悬停时动画?

QWidget::repaint:更新进度条时检测到递归重绘

nvd3.js 图表 ajax 数据重绘 - 缺少悬停效果 + 前 yAxis 比例

为啥过渡框阴影会导致整页重绘?