The slot will not return anything. You either need to store the variable elsewhere or you need to send a signal to the thread to indicate the return value. I would use a state machine in the thread and use a signal to indicate the return value (ie, the thread would change to paused state when the notification is raised and resume upon receiving the response from the user).
You might have guessed that I hate blocking code, so everything runs via events and signals
I've written a file manager before that goes one step further - if it needs a response from the user (eg. overwrite question), it sends a signal to the main thread to request about that file and processes the other files in the background, returning to the other files if and when a response is received from the main thread about those files.
Bookmarks