信号

GioApplication::handle-local-options

自:2.40

声明

gint
handle_local_options (
  GApplication* self,
  GVariantDict* options,
  gpointer user_data
)

描述 [源]

在解析命令行选项后,会在本地的实例上发出::handle-local-options信号。

您可以使用g_application_add_main_option_entries()g_application_add_option_group()来添加在解析命令行选项时将被识别的选项。

信号处理程序可以检查options(包括从已安装的GOptionEntrysarg_data指向的值),以便决定执行某些操作,包括直接本地处理(这可能对像—version这样的选项有帮助)。

如果应用程序设置了G_APPLICATION_HANDLES_COMMAND_LINE,则“正常处理”会将选项字典发送到主实例,可以使用g_application_command_line_get_options_dict()读取。信号处理程序可以在返回之前修改字典,并且修改后的字典将被发送。

如果没有设置G_APPLICATION_HANDLES_COMMAND_LINE,则“正常处理”将剩余的未收集的命令行参数作为文件名或URI处理。如果没有参数,将使用g_application_activate()激活应用程序。一个或多个参数将导致调用g_application_open()

如果您想自己处理本地命令行参数,通过转换为对g_application_open()g_action_group_activate_action()的调用,则必须首先注册应用程序。然而,您可能不希望自己调用g_application_activate():只返回-1,并允许默认处理程序为您完成。这将确保--gapplication-service开关正确工作(即在这种情况下不激活)。

请注意,此信号从local_command_line()的默认实现发出。如果您重写该函数并且不进行链式调用,则此信号将永远不会发出。

如果您需要比此处提供的更强大的功能,可以重写local_command_line(),但这通常是不必要的。

默认处理程序

在调用g_signal_connect()添加的处理程序之后,将调用默认处理程序。

自:2.40

参数

options

类型: GVariantDict

选项字典。

数据由函数调用者拥有。

返回值

类型: gint

退出码。如果你已经处理了你的选项并且想要退出进程,返回非负选项,0表示成功,正数值表示失败。要继续,返回-1以让默认选项处理继续。