Qt连接触发信号的QMenu



我有一个"最近的文件"文件菜单作为QMenu,如:文件->最近的文件。在这个过程中,我动态地创建了几个qaction,其中列出了最近打开的文件。这工作。

但是我想触发一个单独的插槽当我点击最近的文件QMenu。

connect(ui->menuRecently_Open, SIGNAL(triggered(QAction*)), this, SLOT(onRecentOpenFiles(QAction*)));

和一个TRIGGER调试消息应该打印出来

void MainWindow::onRecentOpenFiles(QAction* action)
{
  qDebug() << "TRIGGER";
}

按预期运行:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)
{
    setupUi(this);
    QMenu *fileMenu = menuBar()->addMenu(tr("File"));
    QMenu *recentMenu = fileMenu->addMenu(tr("Recent"));
    recentMenu->addAction(tr("File1"));
    recentMenu->addAction(tr("File2"));
    recentMenu->addAction(tr("File3"));
    connect(recentMenu, SIGNAL(triggered(QAction*))
            , SLOT(onRecentOpenFiles(QAction*)));
}
void MainWindow::onRecentOpenFiles(QAction *action)
{
    qDebug() << action;
}

你做错了什么,或者你没有告诉我们所有的事情。

我遇到了同样的问题,我发现我没有在"private插槽"下添加插槽功能。但是要"private"

相关内容

  • 没有找到相关文章

最新更新