2016-07-12 4 views
1

Mit Gtk-Anwendung können wir mehrere Instanzen des Programms verhindern.GTK-Anwendung primäre zu Remote-Instanz Kommunikation

Es ist möglich, die Befehlsparameter von der fernen Instanz an die primäre Instanz zu senden, wenn Gio.ApplicationFlags.HANDLES_COMMAND_LINE beim Erstellen der Gtk-Anwendung aktiviert ist.

Von diesem senden wir die Argumente die gleiche Gtk-Anwendung von der Befehlszeile, die ziemlich genial ist.

Aber es gibt das Problem, gibt es eine Möglichkeit, die Informationen zurück zur remote/normalen Instanz zu bekommen, so dass während der Abfrage von der Kommandozeile kann es zurück angezeigt werden. Da die Remote-Instanz direkt nach dem Finden der primären Instanz beendet wird.

Ich benutze Python.

+0

Sie fragen, ob die zweite Anwendung Daten an die erste senden kann, bevor sie stirbt? – oldtechaa

+0

@oldtechaa Jede neue Instanz prüft auf die primäre Instanz und sendet die Befehlszeilenparameter an die primäre Instanz. Das Problem, dass es danach stirbt, und die Aufgabe wird von der primären Instanz bearbeitet. Ich brauche eine Rückmeldung von der primären Instanz zurück zur entfernten/normalen Instanz, damit der Benutzer nicht verwirrt wird. – rho

Antwort

0

Ja, aber wahrscheinlich nicht so, wie Sie wollen, also wird es schwierig. Dieser Ansatz sollte funktionieren, aber ich habe es nicht versucht.

Sie sollten die Methode, die Sie von der Remote-Instanz aufrufen möchten, als DBus-Methode verfügbar machen. Dann überschreiben Sie die vfunc. Dies wird in der Remote-Instanz aufgerufen, wenn es über die Befehlszeile gestartet wird, und Sie müssen die Befehlszeilenargumente verarbeiten, bevor sie an die primäre Instanz übergeben werden. Anstatt sie an die primäre Instanz zu übergeben, entfernen Sie sie aus dem Array der Argumente. Rufen Sie dann Ihre DBus-Methode für die primäre Instanz auf und warten Sie auf eine Antwort, bevor Sie von der Funktion zurückkehren.