2013-01-22 7 views
5

Ich habe eine Qt-Anwendung (läuft unter Linux), die ein zusätzliches Fenster auf einem anderen X-Server öffnen soll, der auf einem Remote-Computer läuft.Kann eine einzelne Qt-Anwendung Fenster auf mehr als einer X-Anzeige öffnen?

Gibt es eine Möglichkeit, dies in Qt zu tun?

Ich hoffe, komplexe Konfigurationen, wie zu vermeiden - DMX (virtuellen X-Server oben auf mehrere anderen X-Server) http://dmx.sourceforge.net/ oder - die Schaffung eine zweite Anwendung für die Extra-Fenster, sowie eine Art von Kommunikation zwischen Die beiden Anwendungen

+0

Es kann nur ein "QApplication" -Objekt im Programm geben, und eine "QApplication" spricht nur mit einem "Display". Es ist eine grundlegende Einschränkung. Also nein, das geht nicht in Qt. –

+0

Danke, n.-m. das wollte ich wissen. Ich habe deine Antwort zunächst nicht gesehen, weil du sie als Kommentar anstatt als Antwort hinzugefügt hast. Ich schätze, ich kann nicht vermeiden, eine zweite Anwendung zu erstellen. – ygramoel

Antwort

1

Sie könnten versuchen, einen neuen Prozess zu erstellen und seine Umgebungsvariable DISPLAY auf den anderen X-Server zu setzen.

Probieren Sie es aus bash zunächst tun, um zu sehen, ob es funktioniert, denn ich bin nicht ganz sicher:

export DISPLAY=:0.0 
./my_qt_application 

die :0.0 mit dem anderen X-Server ersetzen.

+0

Funktioniert, aber löst das Problem nicht wirklich: Ich werde immer noch separate Prozesse für die beiden Displays haben und die Kommunikation zwischen ihnen implementieren müssen. – ygramoel

+0

Ja, ich sah Ihre andere Antwort, brauchte aber etwas Zeit, um die Dokumentation zu QX11EmbedWidget zu lesen. – ygramoel

+0

Sie haben Recht, ich habe es gelöscht. Nun, dann wäre ein anderes Verfahren die beste Wahl. Sie können versuchen, Xlib direkt irgendwie zu verwenden, aber ich bezweifle, dass es funktionieren würde, und es wäre nicht sehr einfach. Ich denke nicht, dass es hier eine einfache Lösung gibt. – sashoalm