QTest mouseClick on a QPushButton

亡梦爱人 提交于 2019-12-30 11:56:07

问题


i tried to click a QPushButton with the mouseClick function of the QTest namespace. The QPushButton is a private Member of an Widget. The position of the mouse cursor during the click is in the center of the button, but the Button is not clicked... Can somebady explain me why?

MyWidget *myWidget= new myWidget();

myWidget->show();

while ( !myWidget->isVisible() ) {
     QTest::qWait(200);
}

QTest::qWait(500);
QTest::mouseMove ( myWidget, QPoint( 70, 100 ), -1 );
QTest::mouseClick ( myWidget, Qt::LeftButton, Qt::NoModifier, QPoint( 70, 100 ), 100);

Thanks


回答1:


Make the comment to be the answer.

The possible reason for the problem is that you send the mouse event to the parent widget rather then to the button itself. What if you try to find your button by using QWidget::childAt() function? For example:

[..]
QTest::mouseMove ( myWidget, QPoint( 70, 100 ), -1 );
QWidget *btn = myWidget->childAt(70, 100);
if (btn) {
    QTest::mouseClick ( btn, Qt::LeftButton, Qt::NoModifier, QPoint( 70, 100 ), 100);
}


来源:https://stackoverflow.com/questions/20394236/qtest-mouseclick-on-a-qpushbutton

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!