【发布时间】:2019-10-09 03:37:29
【问题描述】:
我有一个 lambda 方法,我想接收一个插槽作为参数
我最终得到了:
auto createShortcuts = [ = ]( const QString &sequence, const std::function < void () > &slot )
{
QShortcut *sc = new QShortcut( QKeySequence( sequence ), this );
connect( sc, &QShortcut::activated, mMyObject, slot );
};
createShortcuts( QStringLiteral( "whatever" ), [=](){mMyObject->mySlot();} );
但我宁愿在调用 createShortcuts 时避免使用 lambda 槽。而是类似
auto createShortcuts = [ = ]( const QString &sequence, void ( MyObject::* )() )
{
QShortcut *sc = new QShortcut( QKeySequence( sequence ), this );
connect( sc, &QShortcut::activated, mMyObject, ??? );
};
createShortcuts( QStringLiteral( "whatever" ), &MyObject::mySlot );
但我找不到调用插槽的正确语法。
【问题讨论】:
-
捕捉你需要的东西