2009-09-07 17 views
9

Stiamo eseguendo la GUI remota su alcuni PC, tutti in comunicazione con un server centrale su cui è in esecuzione l'applicazione principale. Invece di hackerare il nostro protocollo di rete manuale e il livello di marshalling per pressioni di pulsanti e vari eventi, la mia speranza è che in qualche modo questo possa essere risolto in modo più intelligente.Qualche idea per l'esecuzione di segnali/slot Qt sulla rete?

In effetti, sarebbe bello se si potesse generare automaticamente proxy di rete per questi oggetti Qt, o in qualche modo collegare segnali/slot attraverso un'interfaccia RPC, o qualcosa del genere.

  • Scrivi generatore di codice basato su file .ui di Qt dovrebbe essere fattibile, ma forse qualcun altro ha provato prima (con o senza successo)?

  • Un'altra idea sarebbe quella di utilizzare PyQt e alcuni meccanismi in Python per gli oggetti proxy in rete.

  • In caso di problemi specifici Qt, come si risolve la GUI remota in generale?

(Utilizzo di web server/client non è ok, come abbiamo bisogno del nostro Qt stile, e, probabilmente, una GUI più veloce con i widget più fantasia.)

risposta

9

La libreria Qxt estensione per Qt ha una QxtRPCPeer classe

QxtRPCPeer è uno strumento che incapsula segnali Qt e li trasmette tramite una connessione di rete . Il segnale è successivamente ri-emesso sul alla fine della connessione.

Ultima modifica (il commento di OP rilevanti pubblicato sotto il 26 febbraio '11 alle 16:23):

Un aggiornamento 1,5 anni dopo. Da un anno usiamo QxtRPCPeer nel nostro software di produzione. Nessun problema tecnico.

Ultima modifica (da OP on 2015/05/22):

LibQxt non è più mantenuto, a partire dal 0.6.2, come tenere il passo con i cambiamenti API interne è troppo lavoro per gli autori . Alcune parti potrebbero essere ancora utilizzabili, ma dovresti mantenerla da te.

+0

Qualche esperienza con esso? Potrebbe funzionare come alternativa ai socket + serializzazione? – rpg

+0

Nessuna esperienza con esso, tutti i feedback sono i benvenuti – TimW

+0

Sembra interessante .. indagherà e tornerà .. – Macke

1

Durante la ricerca su Google per "GUI Qt a distanza", Mi sono imbattuto nel progetto this chiamato Vedga. Si basa su Qt e brevemente ciò che fa è:

Vedga è un toolkit per lo sviluppo di applicazioni GUI rete. Consente allo sviluppatore di scrivere semplicemente il codice usando lo stile di programmazione Qt per il lato server e dimenticare il lato client .

Potrebbe valerne la pena. Sarebbe bello se lo verificassi e pubblichi le tue osservazioni su di esso per riferimenti futuri.

+0

Sembra un po 'guasto .. ultimo impegno nel 2002. – Macke

0

Non risolverei questo problema con la scrittura del codice. Vorrei usare gli strumenti che esistono già.

Questo è RDP (servizi terminal) per Windows o semplicemente X (banale, a causa del supporto di rete integrato) per qualsiasi altro sistema operativo.

+0

Qualsiasi collegamento a come configurare RDP per Windows per risolvere il mio problema? Non ho mai usato RDP quindi non ho idea di cosa aspettarmi in termini di prestazioni o difficoltà di implementazione. – Macke

Problemi correlati