2016-07-12 71 views
1

使用Gtk應用程序,我們可以防止程序的多個實例。GTK應用程序主要用於遠程實例通信

在創建Gtk應用程序時啓用Gio.ApplicationFlags.HANDLES_COMMAND_LINE時,可以將命令參數從遠程實例發送到主實例。

通過這個我們我們從命令行發送同一個Gtk應用程序的參數,這非常棒。

但存在的問題是,有沒有什麼方法可以將信息返回到遠程/普通實例,以便在從命令行執行查詢時可以顯示回來。由於遠程實例在找到主實例後立即退出。

我正在使用python。

+0

你問第二個應用程序是否可以在死前將數據發送到第一個應用程序? – oldtechaa

+0

@oldtechaa任何新實例都會檢查主實例並將命令行參數發送到主實例。它在這之後死掉的問題和任務由主實例處理。我需要從主實例返回遠程/普通實例的反饋消息,以便用戶不會感到困惑。 – rho

回答

0

是的,但可能不是你想要的方式,所以它會很棘手。這種方法應該可行,但我沒有嘗試過。

您應該公開您想要從遠程實例調用的方法,作爲DBus方法。然後覆蓋do_local_command_line() vfunc。當它從命令行啓動時,它將在遠程實例中被調用,並且您將在它們傳遞到主實例之前處理命令行參數。不要將它們傳遞給主實例,而是將它們從參數數組中移除。然後在主實例上調用您的DBus方法,並在從do_local_command_line()函數返回之前等待響應。

相關問題