我需要将QAction直接添加到QMenuBar中(不是QMenu中的QAction,而是直接在QMenuBar中的QAction)我可以使用以下命令执行此操作。
ui-> menuBar-> addAction(“VFTP”,this,SLOT(VFTPmenuTrigger()));
我唯一的问题是,当我添加它时,它会附加到我在Qt设计器中构建的菜单栏的末尾。我希望能把它放在中间的某个地方。似乎我能做到这一点的唯一方法就是我只通过编码生成菜单栏。有没有办法在Qt Designer中构建我的大部分menuBar,然后在我想要的菜单栏中添加该Qaction?我希望我很清楚,并且我以编程方式添加了QAction,因为Qt不可能这样做(我知道将QAction直接放在菜单栏中听起来很有意义,但这是客户想要的)
答案 0 :(得分:2)
如果您查看QMenuBar
代码,则表明它会执行此操作:
QAction *QMenuBar::addAction(const QString &text, const QObject *receiver, const char* member)
{
QAction *ret = new QAction(text, this);
QObject::connect(ret, SIGNAL(triggered(bool)), receiver, member);
addAction(ret);
return ret;
}
基本上使用QWidget::addAction()
。因此,您可以自己使用QWidget::insertAction()
来做同样的事情。 insertAction()
允许您在要添加的QAction
之前指定。