を拡張するカスタム ウィジェットがありますQMainWindow
。そこでQAction
、メニューバーにいくつかの を追加し、それぞれにキーボードショートカットを追加しましたが、それらは正常に機能します。これらのアクションの一部をメニューバーから削除したいのですが、ショートカットは有効のままにしておきたいです (ユーザーはヘルプダイアログからショートカットが利用可能かどうかを知ることができます)。そこでまず、アクションを非表示にすることにしました。
それはうまくいかなかったので、ショートカットが機能する必要がある場合、アクションを非表示にすることはできないと思います. それで、メインウィンドウに追加しましたが、まだ機能していません。どうすればそれを機能させることができますか?これが私のコードです。必要なものはすべて method にありsomeMethod
ます。
class MyWidget: public QMainWindow {
public:
MyWidget();
};
MyWidget::MyWidget() {
QAction *myAct = new QAction(tr("&Some Text"), this);
fNextmyActPageAct->setShortcut(QKeySequence(Qt::Key_Right));
myAct->setVisible(false); //adding this does not work
connect(myAct, SIGNAL(triggered()), this, SLOT(someMethod()));
...
QMenu *someMenu = menuBar()->addMenu(tr("&Some Menu"));
someMenu->addAction(myAct); //this works, the option shows up in the menu 'Some Menu' and the shortcut works
this->addAction(myAct); //does not work
}