2009-09-07 15 views
9

Vamos a ejecutar GUI remota en algunas PC, todas se comunican con un servidor central donde se ejecuta la aplicación principal. En lugar de piratear nuestro propio protocolo de red manual y capa de clasificación para pulsaciones de botones y varios eventos, mi esperanza es que esto pueda resolverse de una manera más inteligente de alguna manera.¿Alguna idea para ejecutar señales Qt/slots en la red?

De hecho, sería ingenioso si pudiera autogenerar proxies de red para estos objetos Qt, o de alguna manera conectar señales/ranuras a través de una interfaz RPC, o algo así.

  • Escribir un generador de código basado en archivos .ui de Qt debe ser factible, pero tal vez alguien más ha intentado esto antes (con o sin éxito)?

  • Otra idea sería usar PyQt y algún mecanismo en python para objetos proxy en red.

  • Al fallar cosas específicas de Qt, ¿cómo se resuelve una GUI remota en general?

(usando servidores web/cliente no está bien, ya que tenemos nuestro Qt estilo, y probablemente una interfaz gráfica de usuario más rápida con los widgets más elegantes.)

Respuesta

9

La biblioteca Qxt extensión para Qt tiene un QxtRPCPeer clase

QxtRPCPeer es una herramienta que encapsula señales de Qt y las transmite sobre una conexión red. La señal es posteriormente reemitida en el extremo de recepción de la conexión .

Última edición (comentario de OP Relevante publica a continuación el 26 feb '11 a las 16:23):

una actualización después de 1,5 años. Hemos estado utilizando QxtRPCPeer en nuestro software de producción desde hace un año. Sin problemas técnicos en absoluto.

Última edición (Por OP en 05/22/2015):

LibQxt no tendrá soporte, a partir de 0.6.2, como mantenerse al día con los cambios en la API interna es demasiado trabajo para los autores . Algunas partes aún podrían ser utilizables, pero tendrías que mantenerlo tú mismo.

+0

¿Alguna experiencia con eso? ¿Podría funcionar como una alternativa a los sockets + serialización? – rpg

+0

Sin experiencia, todos los comentarios son bienvenidos – TimW

+0

Parece interesante ... lo investigaré y lo recuperaré .. – Macke

1

Durante la búsqueda en Google de "GUI Qt remoto", Me encontré con el proyecto this llamado Vedga. Se basa en Qt y brevemente lo que hace es:

Vedga es un conjunto de herramientas para el desarrollo de aplicaciones GUI red. Permite al desarrollador escribir código usando el estilo de programación Qt para el lado del servidor y olvidarse del lado del cliente .

Puede valer la pena mirar. Sería bueno que lo compruebe y publique sus observaciones sobre él para futuras referencias.

+0

Parece un poco muerto ... último compromiso en 2002. – Macke

0

No resolvería este problema escribiendo el código. Usaría las herramientas que ya existen.

Esto es RDP (servicios de terminal) para Windows o simplemente X (trivial, debido al soporte de red incorporado) para cualquier otro sistema operativo.

+0

¿Algún enlace a cómo configurar RDP para Windows para resolver mi problema? Nunca he usado RDP, así que tengo poca idea de qué esperar en términos de rendimiento o dificultad de implementación. – Macke

Cuestiones relacionadas