У меня есть всплывающее меню в QTableWidget
(resultTable). В конструкторе моего класса я установить политику контекстного меню:Как получить доступ к QAction с помощью библиотеки QtTest?
resultTable->setContextMenuPolicy(Qt::CustomContextMenu);
connect(resultTable, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(popUpMenuResultTable(QPoint)));
popUpMenuResultTable
функции:
void MyClass::popUpMenuResultTable(QPoint pos)
{
QMenu menu;
QAction* actionExport = menu.addAction(QIcon(":/new/prefix1/FileIcon.png"), tr("Export"));
connect(actionExport, SIGNAL(triggered()), this, SLOT(exportResultsTable()));
menu.popup(pos);
menu.exec(QCursor::pos());
}
Теперь мне нужно реализовать функцию, чтобы проверить мой GUI, используя QtTest LIB.
Как я могу получить тот же результат, что и пользователь, щелкнув правой кнопкой мыши по моему resultTable? В принципе, мне нужно получить доступ к actionExport
(QAction
) и вызвать его.
Например:
Я уже пробовал:
QTest::mouseClick(resultTable, Qt::RightButton, Qt::NoModifier, pos, delay);
но не показывает QMenu
.
Я использую Qt 5.3.2.
Вы пробовали отправить событие контекстного меню в виджет? I.e. создавая 'QContextMenuEvent' и отправляя его с помощью' QCoreApplication :: sendEvent() 'или' QCoreApplication :: postEvent() ' –
Нет, я не пробовал. Можете ли вы привести краткий пример того, как я могу это сделать? Спасибо за помощь. – KelvinS