Je developpe actuellement un petit programme en python avec pyopengl.
Je suis confronté à un petit problème :
Je souhaite que l'utilisateur puisse entrer des commandes dans un
terminal s'executant dans la scene (par exemple, entrer D 30
permettrait de pivoter de 30 degre a droite la camera de la scene)
Le probleme est que si j'utilise raw_input, le programme est bloqué
jusqu'a ce que l'utilisateur presse la touche entrée. Ma scène doit
continuer de "vivre" en arrière plan (même avec la fonction
glutIdleFunc())!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
F. Petitjean
Bonjour,
Je developpe actuellement un petit programme en python avec pyopengl.
Je suis confronté à un petit problème : Je souhaite que l'utilisateur puisse entrer des commandes dans un terminal s'executant dans la scene (par exemple, entrer D 30 permettrait de pivoter de 30 degre a droite la camera de la scene)
Le probleme est que si j'utilise raw_input, le programme est bloqué jusqu'a ce que l'utilisateur presse la touche entrée. Ma scène doit continuer de "vivre" en arrière plan (même avec la fonction glutIdleFunc())!
Une suggestion ?
Mettre la boucle basée sur raw_input() dans un autre fil d'exécution avec le module threading ? Je ne vois pas d'autre solution à priori.
Bonjour,
Je developpe actuellement un petit programme en python avec pyopengl.
Je suis confronté à un petit problème :
Je souhaite que l'utilisateur puisse entrer des commandes dans un
terminal s'executant dans la scene (par exemple, entrer D 30
permettrait de pivoter de 30 degre a droite la camera de la scene)
Le probleme est que si j'utilise raw_input, le programme est bloqué
jusqu'a ce que l'utilisateur presse la touche entrée. Ma scène doit
continuer de "vivre" en arrière plan (même avec la fonction
glutIdleFunc())!
Une suggestion ?
Mettre la boucle basée sur raw_input() dans un autre fil d'exécution
avec le module threading ? Je ne vois pas d'autre solution à priori.
Je developpe actuellement un petit programme en python avec pyopengl.
Je suis confronté à un petit problème : Je souhaite que l'utilisateur puisse entrer des commandes dans un terminal s'executant dans la scene (par exemple, entrer D 30 permettrait de pivoter de 30 degre a droite la camera de la scene)
Le probleme est que si j'utilise raw_input, le programme est bloqué jusqu'a ce que l'utilisateur presse la touche entrée. Ma scène doit continuer de "vivre" en arrière plan (même avec la fonction glutIdleFunc())!
Une suggestion ?
Mettre la boucle basée sur raw_input() dans un autre fil d'exécution avec le module threading ? Je ne vois pas d'autre solution à priori.
nico
Salut,
Bonjour,
Je developpe actuellement un petit programme en python avec pyopengl.
Je suis confronté à un petit problème : Je souhaite que l'utilisateur puisse entrer des commandes dans un terminal s'executant dans la scene (par exemple, entrer D 30 permettrait de pivoter de 30 degre a droite la camera de la scene)
Le probleme est que si j'utilise raw_input, le programme est bloqué jusqu'a ce que l'utilisateur presse la touche entrée. Ma scène doit continuer de "vivre" en arrière plan (même avec la fonction glutIdleFunc())!
Une suggestion ?
Multithreading ?
-- nico
Salut,
Bonjour,
Je developpe actuellement un petit programme en python avec pyopengl.
Je suis confronté à un petit problème :
Je souhaite que l'utilisateur puisse entrer des commandes dans un
terminal s'executant dans la scene (par exemple, entrer D 30
permettrait de pivoter de 30 degre a droite la camera de la scene)
Le probleme est que si j'utilise raw_input, le programme est bloqué
jusqu'a ce que l'utilisateur presse la touche entrée. Ma scène doit
continuer de "vivre" en arrière plan (même avec la fonction
glutIdleFunc())!
Je developpe actuellement un petit programme en python avec pyopengl.
Je suis confronté à un petit problème : Je souhaite que l'utilisateur puisse entrer des commandes dans un terminal s'executant dans la scene (par exemple, entrer D 30 permettrait de pivoter de 30 degre a droite la camera de la scene)
Le probleme est que si j'utilise raw_input, le programme est bloqué jusqu'a ce que l'utilisateur presse la touche entrée. Ma scène doit continuer de "vivre" en arrière plan (même avec la fonction glutIdleFunc())!
Une suggestion ?
Multithreading ?
-- nico
Nicolas Maupu
Mettre la boucle basée sur raw_input() dans un autre fil d'exécution avec le module threading ? Je ne vois pas d'autre solution à priori. J'ai déjà essayé mais ça ne marche pas non plus :
class MonThread(threading.Thread): def __init__(self): threading.Thread.__init__(self)
def run(self): while 1: commande = raw_input(">") print commande
Je crée un objet de la classe avant la fonction glutMainLoop() et je le start.
Ca semble fonctionner mais lors de l'appuie sur la touche entrée, l'instruction print commande n'est pas effectué...
J'avais déjà essayé d'utiliser les threads avec OpenGL mais ça ne semble pas fonctionner. Peut-être que OpenGL a sa propre gestion des tâches à executer simultanément et que la création de threads court- circuite celle d'OpenGL ??
-- Nico
Mettre la boucle basée sur raw_input() dans un autre fil d'exécution
avec le module threading ? Je ne vois pas d'autre solution à priori.
J'ai déjà essayé mais ça ne marche pas non plus :
class MonThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
while 1:
commande = raw_input(">")
print commande
Je crée un objet de la classe avant la fonction glutMainLoop() et je
le start.
Ca semble fonctionner mais lors de l'appuie sur la touche entrée,
l'instruction print commande n'est pas effectué...
J'avais déjà essayé d'utiliser les threads avec OpenGL mais ça ne
semble pas fonctionner. Peut-être que OpenGL a sa propre gestion des
tâches à executer simultanément et que la création de threads court-
circuite celle d'OpenGL ??
Mettre la boucle basée sur raw_input() dans un autre fil d'exécution avec le module threading ? Je ne vois pas d'autre solution à priori. J'ai déjà essayé mais ça ne marche pas non plus :
class MonThread(threading.Thread): def __init__(self): threading.Thread.__init__(self)
def run(self): while 1: commande = raw_input(">") print commande
Je crée un objet de la classe avant la fonction glutMainLoop() et je le start.
Ca semble fonctionner mais lors de l'appuie sur la touche entrée, l'instruction print commande n'est pas effectué...
J'avais déjà essayé d'utiliser les threads avec OpenGL mais ça ne semble pas fonctionner. Peut-être que OpenGL a sa propre gestion des tâches à executer simultanément et que la création de threads court- circuite celle d'OpenGL ??
-- Nico
Do Re Mi chel La Si Do
Bonsoir !
Utiliser threading, comme il a été indiqué ; ou alors, lancer deux sessions de Python (deux scripts), qui communiquent par mmap (ou par un autre moyen).
@-salutations
Michel Claveau
Bonsoir !
Utiliser threading, comme il a été indiqué ; ou alors, lancer deux sessions
de Python (deux scripts), qui communiquent par mmap (ou par un autre moyen).
Utiliser threading, comme il a été indiqué ; ou alors, lancer deux sessions de Python (deux scripts), qui communiquent par mmap (ou par un autre moyen).
@-salutations
Michel Claveau
Laurent Pointal
Nicolas Maupu wrote:
Mettre la boucle basée sur raw_input() dans un autre fil d'exécution avec le module threading ? Je ne vois pas d'autre solution à priori.
J'ai déjà essayé mais ça ne marche pas non plus :
class MonThread(threading.Thread): def __init__(self): threading.Thread.__init__(self)
def run(self): while 1: commande = raw_input(">") print commande
Je crée un objet de la classe avant la fonction glutMainLoop() et je le start.
Ca semble fonctionner mais lors de l'appuie sur la touche entrée, l'instruction print commande n'est pas effectué...
(au cas où...) Un flush quelque part ?
LP.
Nicolas Maupu wrote:
Mettre la boucle basée sur raw_input() dans un autre fil d'exécution
avec le module threading ? Je ne vois pas d'autre solution à priori.
J'ai déjà essayé mais ça ne marche pas non plus :
class MonThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
while 1:
commande = raw_input(">")
print commande
Je crée un objet de la classe avant la fonction glutMainLoop() et je
le start.
Ca semble fonctionner mais lors de l'appuie sur la touche entrée,
l'instruction print commande n'est pas effectué...