In Qt, ich versuche, einige Shortcuts zu meiner GUI hinzuzufügen. Ich kann es einfach tun, indem jeder der Verknüpfungen wie diese deffining und dann, wie sie zu ihrer jeweiligen Funktion:Lambda Ausdruck, wenn Verknüpfung ausgelöst (Qt)
QObject::connect(new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_B), this), SIGNAL(activated()), this, SLOT(myFunc()));
Die Linie von oben wie erwartet funktioniert. Ich möchte jedoch vermeiden, verschiedene Funktionen für jede der Verknüpfungen zu erstellen. Deshalb würde ich gerne Lambda-Ausdrücke verwenden. Ich bin Tring dieses Stück Code funktioniert:
QShortcut *shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_B), this);
QObject::connect(shortcut, SIGNAL(activated()), [=]()
{
myFunc();
});
jedoch die connect
von oben ist nicht erlaubt. Wie kann ich das lösen?