如何让我的 QML 程序利用 Unity7 通知?是否有 API 可供使用?

如何让我的 QML 程序利用 Unity7 通知?是否有 API 可供使用?

我正在用 QML 开发一个截图应用程序,我希望利用Unity 7 通知,类似于 Rhythmbox 在通知用户新歌曲已开始或音量改变时使用的方式。

有这个 API 吗?一个小的编码示例会很有帮助。

答案1

据我所知,不存在可以libnotify从 QML 组件调用的此类 API。

为了避免创建 C++ 插件只是为了获取桌面应用程序的通知,我会使用吡啶硫酮调用一个小型的 Python 模块来完成这项工作:


先决条件

安装 pyotherside:sudo ap-get install pyotherside


首先是 QML:

import QtQuick 2.0
import Ubuntu.Components 1.1
import io.thp.pyotherside 1.2

Rectangle {
    width: 200
    height: 200

    Button {
        text: "press"
        anchors.centerIn: parent
        onClicked: {
            py.call('notify.pressme', [], function() {});
        }
    }

    Python {
        id: py
        Component.onCompleted: {
            addImportPath(Qt.resolvedUrl('.'));
            importModule('notify', function() {});
        }
    }
}

以及 Python 代码(保存在同一目录中),文件名为notify.py

#!/usr/bin/env python3

import subprocess

def pressme():
    subprocess.call(["notify-send", "hello", "world"])

按下 QML 按钮后,您将收到如下通知:

在此处输入图片描述

请阅读通知发送手册页以获得更多选择。

相关内容