首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在信号槽中传递QMouseEvent

在信号槽中传递QMouseEvent
EN

Stack Overflow用户
提问于 2013-09-26 10:12:50
回答 1查看 848关注 0票数 0

当我执行以下操作时,我试图通过一个信号发送一个QMouseEvent。

代码语言:javascript
复制
void mouseReleaseEvent(QMouseEvent* event)
{
    emit mouseEvent(event);
}

调试时,我发现事件是正确的。但是,在一个插槽中接收到它时,某些值在事件中是错误的。就像event->button()是错误的,event->globalX()是正确的,但event->x()是错误的。我不明白为什么在通过时隙时,这个事件会改变。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-26 10:20:00

我不会用上面提到的方式那样做。正如您可能注意到的,QMouseEvent指针指向非常量对象,因此没有什么可以保证它不会改变。最有可能的情况是,event对象在向父对象传播过程中被修改,因此不应该依赖它。相反,可以使用QMouseEvent属性来传递,如位置等:

代码语言:javascript
复制
void mouseReleaseEvent(QMouseEvent* event)
{
    emit mouseEventCaught(event->pos());
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19025396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档