Qt向QMainWindow添加非菜单键盘快捷键

Sex*_*ast 2 c++ qt keyboard-shortcuts qmainwindow qmenubar

我有一个扩展的自定义窗口小部件QMainWindow。我QAction在菜单栏上添加了多个s以及每个快捷键,它们可以正常工作。现在,我想从菜单栏中删除其中的一些操作,但是我想保持快捷方式处于启用状态(用户可以从“ 帮助”对话框中了解快捷方式的可用性)。所以首先我决定将这些动作隐藏起来。

那是行不通的,所以我想如果快捷方式必须起作用,那么动作就不会是不可见的。所以我将其添加到主窗口中,但仍然无法正常工作。任何想法,我如何使它起作用?这是我的代码。该方法中有什么需要发生的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

}
Run Code Online (Sandbox Code Playgroud)

Ali*_*rad 5

我测试了这段代码,它工作正常:

QAction* myAct = new QAction(this);
myAct->setShortcut(Qt::Key_Right);
connect(myAct, SIGNAL(triggered()), this, SLOT(someMethod()));
this->addAction(myAct);
Run Code Online (Sandbox Code Playgroud)

不要添加QAction到菜单栏。