QTest::mouseClick RightButton может не работать, может кто подскажет?

Недавно я видел тему о 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 недостаточно дружелюбен, в некоторых случаях это не так, как вы думаете.

Любые предложения будут ценны!


person StephennQin    schedule 20.10.2020    source источник
comment
Вы уверены, что должны отправлять событие мыши в область просмотра вместо виджета (TableView)?   -  person vahancho    schedule 20.10.2020
comment
Да, когда я использовал виджет, я даже не мог реализовать LeftClick. Вы можете увидеть ссылку, которую я дал в вопросе.   -  person StephennQin    schedule 05.01.2021