pynotify.init 代表什么?

发布于 2024-09-29 02:49:33 字数 59 浏览 2 评论 0原文

我还没有找到有关 pynotify 的文档,所以我不知道 pynotify.init() 函数代表什么。

I haven't find a documentation about pynotify, so I don't know what pynotify.init() function stands for.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半窗疏影 2024-10-06 02:49:33

如果您正在谈论 libnotify 的 python 包装器,

notify.init() 只需包装 C 函数 notify_init() 即可初始化通知库。

有关更多示例,请检查:http://roscidus.com/desktop/node/336

代码来源在这里:http://www.galago-project.org/downloads.php

C API:http://www.galago-project.org/docs /api/libnotify/notify_8h.html

和 ubuntu 指南:https://wiki.ubuntu.com/NotificationDevelopmentGuidelines#How%20do%20I%20get%20these%20slick%20icons

更新:

这是来自源代码的 C 代码:

 /**
 * notify_init:
 * @app_name: The name of the application initializing libnotify.
 *
 * Initialized libnotify. This must be called before any other functions.
 *
 * Returns: %TRUE if successful, or %FALSE on error.
 */
gboolean
notify_init(const char *app_name)
{
    GError *error = NULL;
    DBusGConnection *bus = NULL;

    g_return_val_if_fail(app_name != NULL, FALSE);
    g_return_val_if_fail(*app_name != '\0', FALSE);

    if (_initted)
        return TRUE;

    _app_name = g_strdup(app_name);

    g_type_init();

    bus = dbus_g_bus_get(DBUS_BUS_SESSION, &error);

    if (error != NULL)
    {
        g_message("Unable to get session bus: %s", error->message);
        g_error_free(error);
        return FALSE;
    }

    _proxy = dbus_g_proxy_new_for_name(bus,
                                       NOTIFY_DBUS_NAME,
                                       NOTIFY_DBUS_CORE_OBJECT,
                                       NOTIFY_DBUS_CORE_INTERFACE);
    dbus_g_connection_unref(bus);

    dbus_g_object_register_marshaller(notify_marshal_VOID__UINT_STRING,
                                      G_TYPE_NONE,
                                      G_TYPE_UINT,
                                      G_TYPE_STRING, G_TYPE_INVALID);

    dbus_g_proxy_add_signal(_proxy, "NotificationClosed",
                            G_TYPE_UINT, G_TYPE_INVALID);
    dbus_g_proxy_add_signal(_proxy, "ActionInvoked",
                            G_TYPE_UINT, G_TYPE_STRING,
                            G_TYPE_INVALID);

    _initted = TRUE;

    return TRUE;
}

所以基本上是什么它是否初始化 D-BUS 进行通信并向其添加一些信号。

if you are talking about the python wrapper for libnotify

the notify.init() just wrap the C function notify_init() which initializes the notifications library.

For more examples check this: http://roscidus.com/desktop/node/336

the code source is here : http://www.galago-project.org/downloads.php

the C API : http://www.galago-project.org/docs/api/libnotify/notify_8h.html

and the ubuntu Guideline : https://wiki.ubuntu.com/NotificationDevelopmentGuidelines#How%20do%20I%20get%20these%20slick%20icons

Update:

Here is the hole code in C from the source:

 /**
 * notify_init:
 * @app_name: The name of the application initializing libnotify.
 *
 * Initialized libnotify. This must be called before any other functions.
 *
 * Returns: %TRUE if successful, or %FALSE on error.
 */
gboolean
notify_init(const char *app_name)
{
    GError *error = NULL;
    DBusGConnection *bus = NULL;

    g_return_val_if_fail(app_name != NULL, FALSE);
    g_return_val_if_fail(*app_name != '\0', FALSE);

    if (_initted)
        return TRUE;

    _app_name = g_strdup(app_name);

    g_type_init();

    bus = dbus_g_bus_get(DBUS_BUS_SESSION, &error);

    if (error != NULL)
    {
        g_message("Unable to get session bus: %s", error->message);
        g_error_free(error);
        return FALSE;
    }

    _proxy = dbus_g_proxy_new_for_name(bus,
                                       NOTIFY_DBUS_NAME,
                                       NOTIFY_DBUS_CORE_OBJECT,
                                       NOTIFY_DBUS_CORE_INTERFACE);
    dbus_g_connection_unref(bus);

    dbus_g_object_register_marshaller(notify_marshal_VOID__UINT_STRING,
                                      G_TYPE_NONE,
                                      G_TYPE_UINT,
                                      G_TYPE_STRING, G_TYPE_INVALID);

    dbus_g_proxy_add_signal(_proxy, "NotificationClosed",
                            G_TYPE_UINT, G_TYPE_INVALID);
    dbus_g_proxy_add_signal(_proxy, "ActionInvoked",
                            G_TYPE_UINT, G_TYPE_STRING,
                            G_TYPE_INVALID);

    _initted = TRUE;

    return TRUE;
}

so basically what it's does it initalisaing the D-BUS for communication and add some signals to it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文