2010-12-15 73 views
5

Je suis novice en programmation GUI et multithread. Je suis en train de créer une application en temps réel qui reçoit des informations de ma voiture et la restitue de manière significative. Mon application est disposée en 3 threads, l'interface utilisateur graphique (thread principal), le thread de rendu et le thread comm matériel. Entre le rendu et les threads matériels est un tampon circulaire partagé. Dans le rendu j'ai créé une minuterie pour qu'elle dessine la nouvelle interface 20 fois par seconde. Je voudrais que le fil informe le fil principal qu'il y a un nouvel écran disponible et je pensais qu'une méthode de signal/slots fonctionnerait le mieux pour ceci. Cela revient à ma question. Quand mon render appelle un slot, disons Screen_Avalable, qui est dans mon objet fenêtre principal dans le thread principal, ce slot/méthode est-il traité dans mon thread de travail ou dans le thread principal?Signaux Qt/Slots and Threads

+0

Notez que ce n'est probablement pas une bonne idée de dessiner quelque chose sur l'interface graphique à partir de n'importe quel thread autre que le thread graphique. Votre thread de rendu devrait probablement juste préparer les données à dessiner et les transmettre au thread graphique en utilisant une file d'attente ou quelque chose. –

+0

Dans Qt vous ne pouvez pas afficher autre chose que le fil Gui –

+0

J'allais dessiner à un pixmap, puis passer le pixmap au fil de l'interface graphique pour être dessiné à l'écran – Talguy

Répondre

4

Il est traité dans le thread principal par défaut, mais voir this guide pour plus d'informations.

2

Il est traité sur le thread principal.