'description' is not captured
said that in your lambda, 'description' has not been captured... then add it on the list of captured elements: [this, captured]
I red inside the answers that you may declare same name for function and variable... don't do that, it will generate problems for sure.
QString 'description' declared here
it is a clue for said that the answer of call this.getDescription() should be a QString (QString getDescription() const;)
so 'description' has to be a QString (i think in private area of this). because you are not pass it, it is an undeclared new object inside your lambda function.
so give a varaible name unik and pass the variable inside your lambda by the array list [....] should fix your problem.