pyside2 for docs and c++ qt user-interface mono rust

c++ - for - qt designer



¿Cómo puedo unirme a una GUI de QT a un programa principal que no es de C++? (1)

Tienes un puñado de opciones aquí.

En primer lugar, puede vincular su GUI y su aplicación principal a través de C API. Las GUI generalmente se realizan a través de devoluciones de llamada que se invocan a través de un bucle de evento, por lo que deberá exponer las funciones en su lenguaje de alto nivel como devoluciones de llamada en C para que puedan ser llamadas desde el bucle de evento. Entonces necesitarás iniciar el ciclo del evento Qt. Hay varias formas de hacerlo, dependiendo del idioma que use. Por ejemplo, si usa Rust, puede crear una biblioteca estática o dinámica y vincular su programa de interfaz gráfica de usuario C ++. En este caso, el "punto de entrada" de su programa será la parte de C ++. Si usa algo como Julia, probablemente quiera compilar la parte C ++ como una biblioteca que también expondría una función que llama al ciclo de eventos Qt. Entonces, en este caso, el "punto de entrada" será su parte de nivel superior, que aún tendría que volver a llamar a la biblioteca de C ++.

El segundo enfoque es más cercano a las IU web. Puede hacer que su GUI sea un cliente para su aplicación principal escrita en otro idioma. Pueden intercambiar mensajes a través de algún protocolo existente, como HTTP, o puede implementar su propio protocolo a través de una conexión TCP o UDP de bajo nivel, o puede usar una biblioteca de mensajería de "nivel medio" como ZeroMQ o nanomsg . También puede considerar eliminar Qt por completo y simplemente escribir una aplicación web, con su programa como un servidor web. Esta es la forma más multiplataforma de escribir una GUI ahora, supongo :)

QT parece ser el mejor conjunto de herramientas GUI multiplataforma disponible. Lamentablemente, está en C ++, y los enlaces a muchos lenguajes interesantes (como D, Rust, Julia y Mono on * nix) no están disponibles o no se mantienen. Los enlaces GTK suelen estar disponibles, pero GTK se ve feo en Windows y (especialmente) OS X. Los enlaces wxWidgets también serían agradables, pero no están disponibles o no están guardados para D, Rust y Julia (para Julia, podría pasar por Python para ambos kits de herramientas, pero eso es lento y torpe).

¿Cómo puedo vincular mi GUI de C ++ a un programa principal que no es de C ++?