come collegare un segnale a uno slot in un thread diverso?
-
06-07-2019 - |
Domanda
Qt utilizza segnali e slot normalmente in un singolo thread, quindi chiamare un segnale chiamerà uno slot nello stesso segnale di thread chiamato. È un modo per usare un meccanismo di slot di segnale per passare un messaggio al thread qt (quindi lo slot verrà chiamato più avanti nel contesto del thread specificato)?
Soluzione
Segnali e slot tra le discussioni presenti nella pagina iniziale della documentazione ufficiale Qt .
Altri suggerimenti
Penso che il modo abituale di gestirlo sia quello di fare in modo che il gestore del segnale accoda qualche altra funzione (usando boost :: bind o qualche cosa di tale funzione) e quindi esegua il threadqueue di destinazione eseguirlo in seguito.
Almeno con Qt4 questo non è affatto un problema. Devi solo impostare la connessione da qualche parte in cui hai delle variabili che puntano ad entrambi i thread. (cioè di solito in main ())