Самый простой способ нажать кнопку с помощью QTest

Может ли кто-нибудь объяснить мне самый простой способ нажать кнопку или что-то еще, например QComboBox в QTest?

Я пробовал это:

QComboBox *type = new QComboBox();
type->addItem( "1" );
type->addItem( "2" );
type->addItem( "3" );
type->addItem( "4" );

QVBoxLayout *vLayout = new QVBoxLayout();
vLayout->addWidget( type);

QWidget *myWidget = new QWidget();
myWidget->setLayout( vLayout );

myWidget->show();

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

const int positionXTypeBox = 70;
const int positionYTypeBox = 25;

QTest::mouseMove ( myWidget, QPoint( positionXTypeBox, positionYTypeBox ), -1 );
QTest::qWait( 1500 );
QTest::mouseClick( myWidget, Qt::LeftButton, Qt::NoModifier, QPoint( positionXTypeBox, positionYTypeBox ), 100 );

Мышь была точно над QComboBox-Widget, но при щелчке мыши ничего не происходит.

Спасибо.


person Andreas    schedule 09.12.2013    source источник
comment
Я думаю, вам нужно отправить событие щелчка мыши в поле со списком, а не в виджет: QTest::mouseClick(type.... Используйте координаты, соответствующие системе координат поля со списком.   -  person vahancho    schedule 09.12.2013
comment
В этом случае это возможно, но каково решение, когда поле со списком является закрытым членом виджета?   -  person Andreas    schedule 09.12.2013
comment
Пожалуйста, посмотрите на мой ответ: stackoverflow.com /вопросы/20394236/   -  person vahancho    schedule 09.12.2013
comment
Я знаю этот ответ от вас, но это единственный способ получить доступ к кнопке? Я ищу решение без функции childAt(), только наведите указатель мыши на виджет и щелкните его...   -  person Andreas    schedule 09.12.2013
comment
Ясно, но вы хотите нажать на один виджет, но получить эффект на другой? Признаюсь, я не знаю такого способа.   -  person vahancho    schedule 09.12.2013
comment
Я хочу протестировать графический интерфейс быстро и легко. Я не доволен шагом childAt(), когда я тестирую графический интерфейс, я хочу нажать кнопку, а не найти ее сначала в позиции, а затем щелкнуть по ней.   -  person Andreas    schedule 09.12.2013