Недавно я видел тему о QTest::mouseClick LeftButton(Как вы можете редактировать ячейку QTableView из модульного теста QTest?), я попробовал это и преуспел.
Теперь мне нужно смоделировать действие RightButton-Click и получить customContextMenuRequested, я использовал тот же способ сделать это, однако это не удалось. Вот код:
int xPos = m_pTableView->columnViewportPosition( 2 ) + 5;
int yPos = m_pTableView->rowViewportPosition( 3 ) + 10;
// Retrieve the viewport of the table view
QWidget* pViewport = m_pTableView->viewport();
// I tried serveral combinations
#if 1
QTest::mouseClick ( pViewport, Qt::LeftButton, NULL, QPoint( xPos, yPos ) );
QTest::mouseClick( pViewport, Qt::RightButton, NULL, QPoint( xPos, yPos ) );
#else
QTest::mouseClick ( pViewport, Qt::LeftButton, NULL, QPoint( xPos, yPos ) );
QTest::mouseClick( pViewport, Qt::RightButton, NULL, QPoint( xPos, yPos ) );
QTest::mouseClick( pViewport, Qt::RightButton, NULL, QPoint( xPos, yPos ) );
#endif
Я считаю, что QTest недостаточно дружелюбен, в некоторых случаях это не так, как вы думаете.
Любые предложения будут ценны!