【问题标题】:libnotify action callback not being called未调用 libnotify 操作回调
【发布时间】:2013-06-20 16:33:49
【问题描述】:

我正在尝试在 gnome 中创建一个简单的通知,单击该通知将执行一些代码。我在下面的代码编译并运行,但单击通知气泡没有任何作用。我发现的所有代码示例都表明这应该可以工作。

#include <stdlib.h>
#include <stdio.h>

#include <libnotify/notify.h>

void action(NotifyNotification *n, gchar *action, gpointer data) {
    system("gnome-terminal &");
}

int main(int argc, char **argv) {

    gtk_init(&argc, &argv);

    notify_init("MyApp");

    NotifyNotification *notification;
    notification = notify_notification_new("mynotification", "Hello", NULL, NULL);

    notify_notification_add_action(notification, "DoAction", "default",
            (NotifyActionCallback)action, NULL, NULL);

    notify_notification_show(notification, NULL);

    pause();

}

编译:

gcc main.c `pkg-config --cflags --libs libnotify`

我使用的是 RHEL 6.4,gnome 2.82.2。其他应用程序(例如 firefox“下载完成”)能够创建通知,在单击时执行操作;我只是在某种程度上做得不对。

【问题讨论】:

    标签: gnome libnotify


    【解决方案1】:

    有同样的问题。显然,您必须通过调用 gtk_main 或等效函数之一来使用 GTK 循环,而不是使用暂停/睡眠或其他非 gtk 阻塞函数。

    【讨论】:

      猜你喜欢
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-23
      • 2020-09-04
      相关资源
      最近更新 更多