Qt - 连接menuBar和QWidget

时间:2017-05-08 20:15:38

标签: c++ qt

所以我有这样的菜单栏:

this->layout = new QGridLayout;
QMenuBar* menuBar = new QMenuBar();
QMenu *fileMenu = new QMenu("File");
menuBar->addMenu(fileMenu);
fileMenu->addAction("Exit");
this->layout->setMenuBar(menuBar);

我很奇怪如何将动作"Exit"与我QWidget的某个插槽联系起来,我尝试过这样的事情:

connect(menuBar,SIGNAL(menuBar->actions),this,SLOT(exitGame()));

但它不起作用,你能告诉我我做错了什么吗?是的,我已阅读有关QMenuBar芽的手册,没有连接的例子。我已经阅读了Qt Designer中的一些连接,但我没有使用它。

1 个答案:

答案 0 :(得分:1)

您需要将从QAction返回的QMenuBar::addAction指针连接到插槽...

auto *exit_action = fileMenu->addAction("Exit");
connect(exit_action, &QAction::triggered,
        [this](bool checked)
        {
          exitGame();
        });