找回密码
 立即注册
收起左侧

QML中鼠标事件和QtC++中的MousePressEvent

2
回复
8822
查看
[复制链接]
累计签到:63 天
连续签到:1 天
来源: 2014-4-9 23:41:54 显示全部楼层 |阅读模式
3Qter豆
最近在做QtC++和QML的交互,遇到了关于鼠标事件的问题:如题在QML中通过MouseArea的中的onPressed获取到的x、y跟通过QtC++的MousePressEvent的参数(QMouseEvent* event)获取到的globalPos值不一样,尝试了在C++端的item中调用window()->mapToGlobal(QPoint(x,y)); [x、y是通过QML端获取传到C++中],转换后的值还是不一样。希望各位给出指点,谢谢~

最佳答案

查看完整内容

那是因为qml的mousearea拿到的是自身的x y值,不是整个界面的xy,你要在这个xy加上mousearea自己位置的xy就是了
回复

使用道具 举报

尚未签到

2014-4-9 23:41:55 显示全部楼层
那是因为qml的mousearea拿到的是自身的x y值,不是整个界面的xy,你要在这个xy加上mousearea自己位置的xy就是了
回复

使用道具 举报

累计签到:63 天
连续签到:1 天
2014-4-10 22:21:16 显示全部楼层
Joey_Chan 发表于 2014-4-10 09:09
那是因为qml的mousearea拿到的是自身的x y值,不是整个界面的xy,你要在这个xy加上mousearea自己位置的xy就 ...

问题解决了,需要先通过mapToItem 再通过mapToGlobal得到的就是了。谢谢你的回复
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了