如何直接将QAction
与lambda插槽连接?
QMenu m;
工作:
QAction newSubfolder(QIcon(":/icons/newfolder.png"),tr("New Subfolder"),&m);
m.addAction(&newSubfolder);
connect(&newSubfolder,&QAction::triggered,
this,[this,p](){qDebug()<<"New Subfolder";});
不工作:
m.addAction(QIcon(":/icons/newfolder.png"),tr("New Subfolder"),
[this,p](){qDebug()<<"New Subfolder";});
错误:
No matching function for call to 'QMenu::addAction(QIcon, QString, FolderMenuWidget::showContextMenu(QPoint)::__lambda0)'
[this,p](){qDebug()<<"New Subfolder";});
^
是的我看到了错误消息,但我不明白我需要为lambda插槽更改什么。如果我在lambda之前添加成员指针this
,它也不起作用。
这是在Qt 5.3中。
答案 0 :(得分:6)
您正在寻找的addAction
超载已在Qt 5.6中添加。