委托中的 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 状态的主要内容,如果未能解决你的问题,请参考以下文章
QWidget::repaint:更新进度条时检测到递归重绘