起因:
为了在鼠标hover列表中某一行时进行背景重绘,我重载了QStyledItemDelegate,在win7中程序运行正常,但是当我把程序放到xp环境时,却发现鼠标放置到某一行上时,界面无任何反映。加上debug信息之后,发现并没有触发delegate的paint()函数调用,这顿时让我茫然了。
尝试使用 setMouseTracking(true); 方法
但是效果很不理想,并且我也并不希望随时都能收到鼠标移动事件,最主要的问题是当鼠标已经移出view,但view中的item还是处于hover状态。
只好作罢。
经过google之后,终于在Qt的bug列表中找到了解决方法。
地址如下:https://bugreports.qt.nokia.com//browse/QTBUG-6063
按照备注中所给出的解决方案,需要设置viewpor