Skip to content

Instantly share code, notes, and snippets.

@caetanus
Created December 10, 2013 02:08
Show Gist options
  • Save caetanus/7884717 to your computer and use it in GitHub Desktop.
Save caetanus/7884717 to your computer and use it in GitHub Desktop.
Qt4 lambda connect
#include <function>
#include <QString>
#include <QObject>
class LambdaConnectorHelper: public QObject
{
Q_OBJECT
LambdaConnectorHelper(QObject *parent, const function<void()> &f)
: QObject(parent), m_lamba(f)
{
}
public slots:
void trigger()
{
m_lambda();
deleteLater();
}
private:
function<void()> m_lambda;
}
template <class T>
bool connect(QObject *sender,
const char *signal,
const T &lambda, Qt::ConnectionType type = Qt::AutoConnection)
{
return QObject::connect(sender, signal, new LambdaConnectorHelper(sender, lambda), SLOT((trigger)), type);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment