2017-07-21 8 views
3

J'essaie de contrôler interactivement Paraview en utilisant IDLE. Cela impliquerait d'envoyer des commandes à partir de IDLE et de voir les changements se produire dans Paraview. Je préfère ne pas utiliser le shell python in-Paraview.Contrôle de l'interface graphique de Paraview à partir de Python IDLE

Jusqu'ici, j'ai réussi à importer les modules Paraview (simple, servermanager ... etc) de IDLE. Cependant les commandes envoyées ne reflètent pas dans Paraview. Par exemple:

>>> from paraview.simple import * 
>>> cone = Cone() 
>>> Show() 
>>> Render() 

crée en effet un cône. Cependant, le cône est affiché dans une nouvelle fenêtre OpenGL indépendante et non dans l'interface graphique de Paraview.

Est-il possible de contrôler interactivement Paraview en utilisant IDLE? Si oui, comment accomplir cela? Merci

+0

IDLE dispose d'une fonction spéciale Cela facilite le développement des applications tkinter. Il ne fait rien de spécial pour autre chose. Pour un contrôle interactif pur, vous devriez faire aussi bien qu'avec Python interactif dans une console. (IDLE ajoute la possibilité d'écrire et d'exécuter rapidement des scripts enregistrés.) Je suis perplexe que vous ne souhaitiez pas utiliser la console de Paraview? L'ont-ils estropié? Sinon, il devrait être aussi bon que le shell Python ou IDLE. –

+0

Je ne souhaite pas utiliser la console de Paraview car Paraview n'est qu'une des nombreuses applications que je contrôle simultanément avec Python. Cela n'aurait aucun sens de centraliser mon travail dans la coquille de Paraview et de commencer à coder des choses qui n'ont rien à voir avec Paraview. Fondamentalement, je pourrais prendre des données à partir d'une API python pour une autre application, en le traitant à l'aide du moteur python numpy ou matlab, puis en le publiant à des fins de visualisation/animation uniquement dans Paraview. Voir Paraview n'est qu'un petit pas dans le processus. Je ne veux pas qu'il reprenne mon travail, ce qui implique essentiellement d'autres applications – user32882

+0

Cela a du sens, mais sans connaître Paraview, je ne peux pas commenter plus loin. Voyez si vous pouvez trouver une liste de soutien Paraview spécialisée ou quelque chose. –

Répondre

1

Vous devez exécuter paraview en mode multiclient/serveur. Dans un terminal pvserver.

./bin/pvserver --multi-clients 

Dans un autre terminal, exécutez paraview et vous connecter à votre serveur

./bin/paraview 
File->Connect 
AddServer -> Choose a name -> Configure -> Save 
Connect 

Dans un troisième terminal, exécutez pvpython (ou votre propre python configuré)

./bin/pvpython 
>> from paraview.simple import * 
>> Connect(localhost) 
>> Show() 
>> Render()