发布网友 发布时间: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
直接写鼠标钩子函数,在点击是把光标锁定到当前窗口,然后拖动就行了