Lemon Tea

在那斑驳的墙上,留下一丝印迹。

Qt Model View中的State_MouseOver在xp下不能被触发的问题

起因:

为了在鼠标hover列表中某一行时进行背景重绘,我重载了QStyledItemDelegate,在win7中程序运行正常,但是当我把程序放到xp环境时,却发现鼠标放置到某一行上时,界面无任何反映。加上debug信息之后,发现并没有触发delegate的paint()函数调用,这顿时让我茫然了。


尝试使用 setMouseTracking(true); 方法

但是效果很不理想,并且我也并不希望随时都能收到鼠标移动事件,最主要的问题是当鼠标已经移出view,但view中的item还是处于hover状态。


只好作罢。


经过google之后,终于在Qt的bug列表中找到了解决方法。

地址如下:https://bugreports.qt.nokia.com//browse/QTBUG-6063


按照备注中所给出的解决方案,需要设置viewport的WA_Hover属性

代码如下

viewport()->setAttribute(Qt::WA_Hover,true);


加入该代码之后,重新编译,该问题得以解决。


在此感谢该bug的提交者。

阅读更多
文章标签: qt xp google
个人分类: Qt Cute
想对作者说点什么? 我来说一句

Qt Model/View 学习笔记

2009年01月05日 427KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭