2016-07-12 39 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()函数返回之前等待响应。

相关问题