如何向 运行 gtk 进程发送信号

How to send signal to running gtk process

我正在用 C 编写一个 gtk 应用程序,一旦执行,我希望能够以某种方式联系该进程(希望来自 python)并告诉它执行一个函数。 我的其他一切都在工作,只需要一些方法来从进程外部执行一个函数。

当前主要(基于 gtk 教程):

int
main (int    argc,
      char **argv)
{
  GtkApplication *app;
  int status;
  app = gtk_application_new(NULL, G_APPLICATION_FLAGS_NONE);


  custom_setup();
  g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);

  status = g_application_run (G_APPLICATION (app), NULL, NULL);
  g_object_unref (app);

  return status;
}

谢谢。

您的应用程序必须向其他应用程序公开一个 DBus 接口,使用它们可以调用的方法来执行您的功能。

执行此操作的一个很好的快捷方式是向您的应用添加 GAction,描述为 here. Then other apps can call the org.gtk.Actions.Activate DBus method 以激活 GAction 并执行您的功能。