为自动创建的菜单项添加插槽

时间:2011-09-02 13:56:24

标签: qt qt4 qmenu

我有一个名为save的现有菜单,在其中我想添加两个菜单,Save New和Save Edits。

QMenu *menu = new QMenu(this);
menu->addAction("Save New");//void saveNew()
menu->addAction("Save Edits");//void saveEdits()
ui.saveButton->setMenu(menu);

我已经找到了合适的功能并发现了这个但我需要帮助实现它。

QAction * QMenu::addAction ( const QString & text, const QObject * receiver, const char * member, const QKeySequence & shortcut = 0 )

我该怎么做?。

1 个答案:

答案 0 :(得分:7)

menu->addAction("Save New", this, SLOT(saveNew()));

使用与connect调用相同的参数:

QAction *saveAction = menu->addAction("Save New");
connect(saveAction, SIGNAL(triggered()), this, SLOT(saveNew()));

如果菜单是在设计器中创建的,则可以连接同时创建的相应操作:

connect(ui.saveAction, SIGNAL(triggered()), this, SLOT(saveNew()));

或使用信号/插槽编辑器直接连接设计器中的操作。