我有一个“最近的文件”文件菜单作为QMenu,如:文件 - >最近的文件。 在那里,我动态创建几个QActions与最近打开的文件列出。这样可行。
但是当我点击最近的文件QMenu时,我想触发一个单独的SLOT。
connect(ui->menuRecently_Open, SIGNAL(triggered(QAction*)), this, SLOT(onRecentOpenFiles(QAction*)));
并打印出TRIGGER调试信息
void MainWindow::onRecentOpenFiles(QAction* action)
{
qDebug() << "TRIGGER";
}
但没有任何反应?
答案 0 :(得分:3)
这可以按预期工作:
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;
}
你做错了什么,或者没有告诉我们一切。