QT - connect + lambda = error

QT - connect + lambda = error
0

Hej!!

Pojawił się problem łączenia w QT z funkcją lambda.
Mam taki zapis:

Kopiuj
QQuickView view;
// ... //
QObject *object = view.rootObject();
QObject::connect(object, SIGNAL(updateOutput()), [](){});  // error
// ... //

Błąd:

Kopiuj
błąd: no matching function for call to 'QObject::connect(QQuickItem*, const char [16], main(int, char**)::<lambda()>)'

Sygnał updateOutput pochodzi z QML'a.

Jak to zrobić?

Endrju
  • Rejestracja:około 22 lata
  • Ostatnio:prawie 2 lata
3

https://wiki.qt.io/New_Signal_Slot_Syntax#Connecting_in_Qt5

"Stary" connect nie może być używamy z lambdą. "Nowy" może.


"(...) otherwise, the behavior is undefined".
0

No tak, tylko nie mogę podać adresu sygnału, ponieważ jest on w QML, więc muszę tekstowo poprzez SIGNAL(...)

:(

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.