如何向正在运行的gtk进程发送信号?

问题描述 投票:1回答:1

我正在用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;
}

谢谢你

c linux gtk gtk3
1个回答
0
投票

你的应用程序必须向其他应用程序暴露一个DBus接口,并提供一个他们可以调用的方法来执行你的函数。

要做到这一点,一个很好的捷径是在应用程序中添加一个名为 GAction 到您的应用程序,这将被描述为 此处. 然后其他应用程序可以调用 org.gtk.Actions.Activate DBus方法 激活 GAction 并执行你的功能。

© www.soinside.com 2019 - 2024. All rights reserved.