• 4035阅读
  • 2回复

[提问]sendEvent [复制链接]

上一主题 下一主题
离线l12k3j
 

只看楼主 倒序阅读 楼主  发表于: 2015-06-26
void MainWindow::timerEvent(QTimerEvent *){
    SelfMotionClick();
}

void MainWindow::mousePressEvent(QMouseEvent *event){
    x = event->x();
    y = event->y();
}

void MainWindow::SelfMotionClick(){
    QPoint pos;
    pos.setX(100);
    pos.setY(100);
    QMouseEvent mEvnPress(QEvent::MouseButtonPress,pos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);

    QCoreApplication::sendEvent(focusWidget(),&mEvnPress);
}

为什么sendevent发送的事件中的坐标在mousePressEvent中变了
离线chengsida

只看该作者 1楼 发表于: 2015-06-26


新手,不太了解,关注下。
初学编程,初学QT,不太容易,多多帮忙
离线dbzhang800

只看该作者 2楼 发表于: 2015-06-26
你用sendEvent将事件发往了 focusWidget(),但是你是在MainWindow的事件处理函数中进行的处理。

那么问题来了,你的focusWidget() 和你当前的 this 是同一个东西么?如果不是,二者是什么关系,父子关系还是其他

如果是父子关系,focusWidget()上的 的 (100,100) 这一点 和 你的mousePressEvent中看到的this的(event.x(), event.y())这一点 是不是你屏幕坐标的同一个点?

...
快速回复
限100 字节
 
上一个 下一个