【发布时间】:2016-06-23 16:05:12
【问题描述】:
在 Qt 中,我正在尝试向我的 GUI 添加一些快捷方式。我可以简单地通过像这样定义每个快捷方式然后将它们添加到各自的功能来做到这一点:
QObject::connect(new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_B), this), SIGNAL(activated()), this, SLOT(myFunc()));
上面的行按预期工作。但是,我想避免为每个快捷方式创建不同的功能。这就是为什么我想使用 lambda 表达式。我正在努力让这段代码工作:
QShortcut *shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_B), this);
QObject::connect(shortcut, SIGNAL(activated()), [=]()
{
myFunc();
});
但是,上面的connect 是不允许的。我该如何解决这个问题?
【问题讨论】:
标签: c++ qt lambda signals-slots