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

本文介绍了在Qt应用中遇到的在Windows XP环境下,QStyledItemDelegate的State_MouseOver状态无法触发的问题。通过Google搜索,作者发现在Qt的bug报告中找到了解决方案,即设置viewport的WA_Hover属性来解决这个问题。添加viewport()->setAttribute(Qt::WA_Hover,true)代码后,问题得到解决。" 108648081,9643112,C#方法详解:参数传递与返回值,"['C#编程', '方法', '参数传递']
摘要由CSDN通过智能技术生成

起因:

为了在鼠标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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值