L'ouverture d'un Python fil dans une nouvelle fenêtre de console
Je suis en train de faire un programme qui sera lancé à la fois une fenêtre de visualisation (console) et d'une ligne de commande. Dans la fenêtre d'affichage, cela montrerait constante mises à jour, tandis que la fenêtre de ligne de commande serait d'utiliser raw_input()
pour accepter les commandes qui affectent la fenêtre d'affichage. Je pense à propos de l'utilisation de threads pour cela, mais je n'ai aucune idée de la façon de lancer un thread dans une nouvelle fenêtre de console. Comment dois-je procéder?
Vous ne savez pas si vous pouvez à tous, mais il y a d'énormes différences entre les plates-formes. Plus important encore, la console Windows est différente à partir d'UNIX terminaux. Quelle plate-forme êtes-vous?
Je voudrais comment faire sous Windows et UNIX/Linux/Mac, et d'utiliser sys.plate-forme pour être portable.
Vous pouvez utiliser plusieurs processus et des canaux nommés? Si vous allez avec les multiples processus de la stratégie, puis il ya beaucoup de interprocessus, les stratégies. quelle plateforme utilisez-vous?
Je voudrais savoir comment faire sous Windows et UNIX/Linux/Mac.
Qu'entendez-vous par "les multiples processus de la stratégie"?
Je voudrais comment faire sous Windows et UNIX/Linux/Mac, et d'utiliser sys.plate-forme pour être portable.
Vous pouvez utiliser plusieurs processus et des canaux nommés? Si vous allez avec les multiples processus de la stratégie, puis il ya beaucoup de interprocessus, les stratégies. quelle plateforme utilisez-vous?
Je voudrais savoir comment faire sous Windows et UNIX/Linux/Mac.
Qu'entendez-vous par "les multiples processus de la stratégie"?
OriginalL'auteur elijaheac | 2012-07-29
Vous devez vous connecter pour publier un commentaire.
Plutôt que d'utiliser une console ou une fenêtre de terminal, re-examiner votre problème. Ce que vous essayez de faire est de créer une interface graphique. Il y a un certain nombre de croix-plate-forme de boîtes à outils, y compris Wx et Tkinter qui ont des widgets à faire exactement ce que vous voulez. Une zone de texte pour la sortie et une entrée widget pour la lecture de la saisie au clavier. De Plus, vous pouvez les envelopper dans un cadre agréable avec des titres, de l'aide, ouvrir/enregistrer/fermer, etc.
OriginalL'auteur stark
Je suis d'accord avec @stark un GUI est le chemin.
Purement à des fins d'illustration voici un pas recommandé non-GUI manière qui montre comment le faire en utilisant un fil, un sous-processus, et d'un tube nommé comme IPC.
Il y a deux scripts:
entry.py
: accepter des commandes d'un utilisateur, de faire quelque chose avec la commande, passer à la pipe nommé donné à la ligne de commande:view.py
: Lancement de l'entrée de la console, imprimer les mises à jour constantes dans un fil de discussion, d'accepter l'entrée de la pipe et de le transmettre au fil des mises à jour:De l'essayer, exécutez:
p = launch_entry_console(named_pipe)
et alors commencé à lire le fichier à l'aide dewith open(named_pipe) as file
, est-ce la lecture commep
est en cours d'exécution en arrière-plan? Comme dans, je peux déjà utiliser ce programme si je veux résilierp
lorsqu'un certain texte "stop" est lu avec le tuyau ouvert.Oui,
p
processus est en cours d'exécution pendant que vous lisez à partir d'un tube nommé.Dans Windows, vous pouvez utiliser
console = ["cmd.exe", "/c", "start"]
. Lestart
permet à Windows d'ouvrir une nouvelle fenêtre. Aussi, je préfère de référence de la variable d'environnement COMSPEC et l'utilisation des lettres majuscules, comme dansconsole = [os.environ.get("COMSPEC", "CMD.EXE"), "/C", "START"]
, mais c'est juste mon style. Bien sûr, je suis d'accord qu'une interface graphique serait une meilleure solution que de tout cela.OriginalL'auteur jfs