作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要使用 qt、c++、qtest(在 eclipse 中)自动化 gui 测试我有一个动态创建的菜单,其中包含动态创建的 QAction,我需要从中测试一个“新选项卡”QAction(在菜单内),这就是他的创建方式:
m_pNewTabAction = new QAction(QIcon(":/images/add.png"), tr("&New Tab"), this);
m_pNewTabAction->setShortcut(tr("Ctrl+N"));
m_pNewTabAction->setStatusTip(tr("Open a new tab"));
connect(m_pNewTabAction, SIGNAL(triggered()), this, SLOT(NewTab()));
在我的测试类中,我设法使用“findChildren”函数访问私有(private) QAction 对象 (m_pNewTabAction),现在我不知道如何“执行”QAction(或者换句话说“添加新选项卡”) )我的测试类:
//Get the actions available for the filemenu
QList<QAction *> fileactions = filemenu->findChildren<QAction *>();
//Execute an action??
fileactions.front()-> //how do I execute my QAction?
最佳答案
我相信您正在寻找 QAction::activate()
:
void QAction::activate(ActionEvent event)
ActionEvent
是 QAction::Trigger
或 QAction::Hover
之一。您可能需要 QAction::Trigger
。
关于C++/QT : "run" a QAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23059521/
我是一名优秀的程序员,十分优秀!