1

save という名前の既存のメニューがあり、その中に Save New と Save Edits の 2 つのメニューを追加したいと考えています。

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 )

どうすればできますか?

4

1 に答える 1

8
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()));

または、シグナル/スロット エディターを使用して、デザイナー内からアクションを直接接続します。

于 2011-09-02T14:15:23.733 に答える