问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何重写qmouseevent

发布网友 发布时间:2022-04-25 03:29

我来回答

1个回答

热心网友 时间:2023-10-23 08:52

1、QMouseEvent中的坐标[喝小酒的网摘]http://blog.hehehehehe.cn/a/17083.htm
QMouseEvent中保存了两个坐标,一个是全局坐标,当然另外一个是局部坐标。
全局坐标(globalPos())即是桌面屏幕坐标(screen coordinates),这个跟windows下的调用getCursorPos函数得到的结果一致。
局部坐标(pos())即是相对当前active widget的坐标,左上角坐标为(0, 0)。

补充一个公式:
this->mapFromGlobal(this->cursor().pos()) = event.pos()

2、鼠标跟踪
在qt中,鼠标跟踪对应函数mouseMoveEvent。但是,默认情况下他并不能如期象你想象的那样响应鼠标的移动。此时,你只需在合适的位置调用一下函数setMouseTracking(true)即可。
If mouse tracking is switched off, mouse move events only occur if a mouse button is pressed while the mouse is being moved.
If mouse tracking is switched on, mouse move events occur even if no mouse button is pressed.
默认情况下,mouseMoveEvent响应你按下鼠标的某个键(拖动,但不局限于左键拖动)的鼠标移动。

3、鼠标左键拖动和左键点击的判断
鼠标左键点击很容易判断,一般就是在重写mousePressEvent函数,示例如下:
void XXXWidget::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
{
// todo ...
}
}
左键拖动的判断一般放在mouseMoveEvent函数中,但是你不能向上例一样来判断,因为该函数的event参数总是返回Qt::NoButton。你可以这样做:
void XXXWidget::mouseMoveEvent(QMouseEvent *event)
{
if(event->buttons() & Qt::LeftButton)
{
// todo ...
}

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 请问高人、3d打印机和3d扫描仪哪个牌子最好? 养鱼不用过滤器可以吗 村上春树的小说,一些名著 melodyne撤销快捷键 什么是“PET”? 3d打印扫描仪多少钱? 我国近年各方面科技成果?详细点 想你的时候你也想我吗?这是什么歌? 歌词有一句是:我想你的时候你是否想我。是什么歌? 离婚了怎么样去挽回爱人? 歌词里有“想你的时候,我就……”是什么歌? 三维激光扫描和3d打印怎么结合 你到哪儿去了,想你的时候我抬头望天,你知道不知道?这是歌词,歌名是什么? 3d打印机带不带3D扫描仪,3D 复印机? 女孩子说的,想你的时候我抬头微笑 你知道不知道什么意思? 日本名著有哪些? pet中文是什么意思,pet中文翻译是:宠爱 itseez3d扫描好后能3d打印吗 请大家介绍一些目前世界上最尖端的科技成果有哪些? 妻子心凉了,丈夫如何挽回? 3D扫描,3D打印,前景如何? 《挪威的森林》算世界名著吗 初学者应该怎样学习 Logic Pro 3D扫描后的文件是破布一样的,要怎样把它填充成是实体?要用于3D打印 新人贴,C#通过ODBC连接MySQL数据库怎么实现 3D打印从扫描到最后完成,需要多长时间? 2009最新科技成果介绍(500字左右) mysql 有几个特殊字符的函数 什么是PET?请介绍 aspx(c#)怎么向MySQL数据库插入数据,不要odbc,急切需要 长春市双阳区的中学有哪些 饮料瓶上的PET是什么意思? 经常喝小酒对身体的危害会更大吗?真相是怎样的? 急!!长春市双阳区有几所中学(有初中部的),都有哪几所?要学校名称。谢谢 300g/m2pET是什么意思 科技成果的简介 为什么要喝酒的的句子 教科研成果的介绍 PET中文名字叫什么??? 为什么喝酒要叫喝小酒