views:

503

answers:

3

We're going to running remote GUI on a few PCs, all communicating with a central server where the main application is running. Instead of hacking our own manual network protocol and marshalling layer for button presses and various events, my hope is that this could be solved more cleverly somehow.

Indeed, it'd be nifty if you could autogenerate network proxies for these Qt objects, or somehow connect signals/slots across an RPC interface, or something like that.

  • Writing a code generator based on Qt's .ui files should be doable, but maybe someone else has tried this before (with or without success)?

  • Another idea would be to use PyQt and some mechanism in python for networked proxy objects.

  • Failing Qt specific stuff, how does one solve remote GUI in general?

(Using web server/client is not ok, as we need our Qt Style, and probably a more speedy GUI with more fancy widgets. )

+1  A: 

When searching google for "Remote GUI Qt", I came across this project called Vedga. It is based on Qt and briefly what it does is:

Vedga is a toolkit for developing network GUI applications. It allows the developer to just write code using the Qt programming style for the server side and forget about the client side.

It might be worth looking. It would be nice if you check it out and post your observations about it for future reference.

erelender
Looks a bit dead.. last commit on 2002.
Marcus Lindblom
A: 

I wouldn't solve this problem with writing code. I would use the tools which already exist.

This is RDP (terminal services) for windows or simply X (trivial, because of the builtin network support) for any other OS.

drhirsch
Any link to how to set up RDP for Windows for solving my problem? I've never used RDP so I have little idea what to expect in terms of performance or implementation difficulty.
Marcus Lindblom
+3  A: 

The Qxt extension library for Qt has a QxtRPCPeer class

QxtRPCPeer is a tool that encapsulates Qt signals and transmits them over a network connection. The signal is subsequently re-emitted on the receiving end of the connection.

TimW
Any experience with it? Could it work as an alternative to sockets + serialization?
rpg
No experience with it, all feedback is welcome
TimW
Looks interesting.. will investigate and get back..
Marcus Lindblom
Seems to be working well. The include-files where a bit messy to get right (if one doesn't use qmake, which we don't), but I've written a small test app in an hour that connects signals/slots back and forth across two QxtRPCPeers (on localhost in same process, but nevertheless). Works flawlessly.Two thumbs up.
Marcus Lindblom
@marcus Thanks for the heads up
TimW