关于QT重载鼠标事件的一些问题

发布网友 发布时间:2022-04-23 05:56

我来回答

2个回答

热心网友 时间:2023-11-01 22:41

class A:public QWidget;
class B:public QWidget;
....
A* a;
B* b;
void A::mousePressEvent(QMouseEvent* e)
{
//do something;先做你需要做的工作

//发现这个事件被处理了的,那就是B处理的,B直接调用了A的这个函数
if(e->isAccepted())
return;
//如果没被处理,那就是系统的事件到来,自己先处理,然后传给B,B收到一个处理了的事件,就不再传给A了;这样避免递归死循环
else
e->accept();
b->mousePressEvent(e);
}

void B::mousePressEvent(QMouseEvent* e)
{
//do something;
//同样的道理
if(e->isAccepted())
return;
else
e->accept();
a->mousePressEvent(e);
}
//releaseEvent也一样
moveEvent也一样,但都需要注意,如果用要坐标,那么直接调用的值到另一个UI需要转换追问

不好意思啊没怎么看懂  我直接说我要做的是什么吧

热心网友 时间:2023-11-01 22:41

直接写鼠标钩子函数,在点击是把光标锁定到当前窗口,然后拖动就行了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com