QTest mouseClick на QPushButton

Я попытался щелкнуть QPushButton с помощью функции mouseClick пространства имен QTest. QPushButton является частным участником виджета. Положение курсора мыши во время щелчка находится в центре кнопки, но кнопка не нажата... Может кто-нибудь объяснить, почему?

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);

Спасибо

1 ответ

Решение

Сделайте комментарий, чтобы быть ответом.

Возможная причина проблемы заключается в том, что вы отправляете событие мыши родительскому виджету, а не самой кнопке. Что делать, если вы пытаетесь найти свою кнопку с помощью QWidget::childAt() функционировать? Например:

[..]
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);
}
Другие вопросы по тегам