La idea es integrar un formulario de Python dentro de otro formulario de C#, es decir, he creado un formulario de Python con extensión *.py y otro formulario de C# con extensión *.cs, quiero insertar el formulario de Python dentro de un contenedor tipo panel alojado en el formulario de C# y que se puedan entender entre ellos, que la información captura en el formulario de Python la pueda tratar el formulario de C#.
Así sin más nunca lo he hecho. Lo que he hecho y hice un documento, es crear una dll de C++ nativo y que lo lea C#. O lo que es lo mismo de lo que quieres hacer.
Crear una dll hecho con Python y lo lea C#.
Revisa el documento si es así lo que deseas. En este ejemmplo es mostrar un texto y una suma cuya funciones está en C++ con una dll y C# lo llama para mostrar los datos. También se puede crear controles visuales.
Quizás tendría que haberme explicado mejor, te comento.
Estoy desarrollando un software de decodificación de señales digitales y tengo una FFT creada en Python, la idea era incrustar esa FFT dentro de mi formulario de C#, este segundo formulario también lo tengo implementado, me faltaría poder integrar esos dos formularios en uno solo, como indiqué antes lo que quiero es poner el formulario de Python dentro de un panel del formulario de C# y poder extraer esa información de la FFT, ya que en la actualidad, mi segundo formulario es capaz de interpretar una señal de audio y extraer la información de interés.
La pretensión, por tanto, sería poder sintonizar en la FFT una señal en el aire para que mi segundo formulario la interpretase, en la actualidad lo hago presentarlos en ventanas separadas, pero como te he contado lo que quiero es que me aparezcan ambos en una misma ventana.
La idea es integrar un formulario de Python dentro de otro formulario de C#, es decir, he creado un formulario de Python con extensión *.py y otro formulario de C# con extensión *.cs, quiero insertar el formulario de Python dentro de un contenedor tipo panel alojado en el formulario de C# y que se puedan entender entre ellos, que la información captura en el formulario de Python la pueda tratar el formulario de C#.
Hasta donde yo se, diría que no existe ninguna herramienta, ni integrada ni de terceros, que permita establecer ese tipo de integración en Visual Studio para alojar algo reconocible como "form de Python" en un control o form de .NET Framework. Creo que eso es lo que estás preguntando, ¿verdad?, algo así como lo haríamos para interoperar entre controles de WinForms y WPF mediante la clase / control ElementHost ( https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.integration.elementhost ) como en los siguientes ejemplos:
Entonces, e insisto, hasta donde yo se, lo máximo a integración en interoperabilidad entre Python y .NET, y para Visual Studio, sería IronPython ( https://ironpython.net/ ).
Aquí tienes un ejemplo de como iniciarse con IronPython:
Por cierto, he leido que, al usar IronPython para crear una aplicación de Windows Forms, la caja de herramientas de controles y el diseñador de forms en Windows Forms no aparecen disponibles (es decir, todo el formulario lo deberías diseñar mediante Python), pero en la tecnología WPF si que está disponible, así que quizás sería más conveniente crear una aplicación WPF con IronPython. Al menos eso dicen aquí: https://developercommunity.visualstudio.com/t/usar-windows-forms-con-python/905441
Aparte de eso, y por si no lo sabías, esta extensión para Visual Studio quizás te podría servir de ayuda para mejorar la experiencia en lo relacionado al análisis y desarrollo de código de Python en Visual Studio:
PD: las características de esa extensión ya vienen integradas como parte del conjunto de paquetes 'Python development' y 'Data science and analytical applications' en el instalador de Visual Studio.
Espero haberte ayudado.
« Última modificación: 27 Diciembre 2021, 02:58 am por Mohicano »
En relación a IronPython quizás esté yo equivocado ya que pensaba que era para integrar un script de Python en C# y no veía cómo aplicarla a mi proyecto.